我正在寻找一种方法来返回Javascript中只有一个对象数组的单个属性的数组。具体来说,如果我有一个格式化为以下规范的数组结构:
[
{ prop1: "someVar", prop2: "anotherVar" },
{ prop1: "foo", prop2: "bar" },
{ prop1: "abc", prop2: "def" }
]
如何返回仅prop1
属性的数组?如下:
[ "someVar", "foo", "abc" ]
我以为我可以在原始数组上使用。filter
方法,如下所示:
self.myArray.filter(function (el) {
return el.prop1;
});
但这显然不起作用......想法?
答案 0 :(得分:6)
试试这个;
var newArray = [
{ prop1: "someVar", prop2: "anotherVar" },
{ prop1: "foo", prop2: "bar" },
{ prop1: "abc", prop2: "def" }
].map(function(item) {
return item.prop1;
});
如果prop1
是动态的,那么您可以使用类似的函数
function extractProperty(array, prop) { //you may want to give it a better name
return array.map(function(item) {
return item[prop];
});
}
您可以像使用它一样使用
var array = extractProperty([
{ prop1: "someVar", prop2: "anotherVar" },
{ prop1: "foo", prop2: "bar" },
{ prop1: "abc", prop2: "def" }
], 'prop1');