如果我有一个对象,这样
var object = function(key,text)
{
this.key = key;
this.text = text;
}
并创建这些对象的数组
var objArray = [];
objArray[0] = new object('key1','blank');
objArray[1] = new object('key2','exampletext');
objArray[2] = new object('key3','moretext');
有没有一种方法可以只检索数组中所有对象的一个属性?例如:
var keyArray = objArray["key"];
上面的示例不会将 set keyArray 返回为任何内容,但我希望它将设置为如下所示:
keyArray = [
'key1',
'key2',
'key3']
有谁知道有一种方法可以做到这一点,而无需迭代 objArray 并手动将每个键属性复制到键数组吗?
最佳答案
使用 Array.prototype.map() 可以轻松完成此操作功能:
var keyArray = objArray.map(function(item) { return item["key"]; });
如果您经常这样做,您可以编写一个抽象 map 的函数:
function pluck(array, key) {
return array.map(function(item) { return item[key]; });
}
事实上,Underscore 库有一个内置函数,名为 pluck正是这样做的。
关于javascript - Javascript 中的对象数组仅返回某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440403/