rag*_*mon 21 javascript arrays javascript-objects
如果我有这样的对象
var object = function(key,text)
{
this.key = key;
this.text = text;
}
Run Code Online (Sandbox Code Playgroud)
并创建这些对象的数组
var objArray = [];
objArray[0] = new object('key1','blank');
objArray[1] = new object('key2','exampletext');
objArray[2] = new object('key3','moretext');
Run Code Online (Sandbox Code Playgroud)
有没有办法我只能检索数组中所有对象的一个属性?例如:
var keyArray = objArray["key"];
Run Code Online (Sandbox Code Playgroud)
上面的例子没有将set keyArray返回给任何东西,但我希望它会被设置为这样的东西:
keyArray = [
'key1',
'key2',
'key3']
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何在不迭代objArray并手动将每个键属性复制到键数组的情况下执行此操作?
Jac*_*all 25
使用Array.prototype.map()函数可以轻松完成此操作:
var keyArray = objArray.map(function(item) { return item["key"]; });
Run Code Online (Sandbox Code Playgroud)
如果你经常这样做,你可以编写一个抽象地图的函数:
function pluck(array, key) {
return array.map(function(item) { return item[key]; });
}
Run Code Online (Sandbox Code Playgroud)
事实上,Underscore库有一个名为pluck的内置函数,它正是这样做的.