给定对象数组:
data = [{a: 1, b: 2, c: 3}, {a: 4, b: 5, c: 6}, {a: 7, b: 8, c: 9}]
如何才能获得对象的a
元素数组?像这样:
a = [1, 4, 7]
是否可以不迭代对象?
答案 0 :(得分:6)
使用.map()
var data = [{a: 1, b: 2, c: 3}, {a: 4, b: 5, c: 6}, {a: 7, b: 8, c: 9}];
var a = data.map(obj => obj.a);
console.log(a);

答案 1 :(得分:4)
你也可以试试这个:
var result = data.reduce(function(result, obj) {
return result.concat(obj.a);
}, []);
答案 2 :(得分:3)
有几种方法。
您应该查看Array.map()
或强大的Lodash库。
let aElements = data.map(o => o.a);
答案 3 :(得分:2)
使用函数式编程(映射高阶函数):
var a = data.map(function(obj){return obj.a});
或在es6中相同:
let a = data.map(obj=>obj.a);
但是,技术上Array.prototype.map
会迭代。