javascript - Javascript 中的对象数组仅返回某些属性

标签 javascript arrays javascript-objects

如果我有一个对象,这样

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/

相关文章:

javascript - 如何在 ProtractorJS for Angular 中使用 .isDisplayed() 和 .each()

r - 应用函数循环遍历 R 中数组的 3 个维度中的 2 个维度

c++ - 获取动态 C 样式数组的大小与使用 delete[]。矛盾?

javascript - 如何使用数组包含并根据对象的属性检查对象

javascript - 试图理解两个简短的 JavaScript 函数中的作用域

javascript - 追加到无序列表时无法在 'appendChild' 错误上执行 'Node'

javascript - 如何使用 HTML 发送 WPS 请求

javascript - 如何将事件监听器添加到选择元素?

javascript - 在数组中的偶数之间插入连字符

javascript - 如何观察javascript数组中对象的变化?