我有一个对象数组
var array = [{"a":11,"b":2},{"a":22,"b":2}]
从这里,我想要一个键值列表' a'在数组的所有对象中。
var res = [11,22]
如何在不编写循环的情况下将其作为单行程执行?
答案 0 :(得分:3)
您可以使用map
函数转换数组:
var allA= array.map(function(o) {
return o.a;
});
答案 1 :(得分:1)
var array = [{"a":11,"b":2},{"a":22,"b":2}];
var res = array.map(function(val){
return val["a"];
});
console.log(res); // [11, 22]
答案 2 :(得分:1)
我知道你没有提到underscore
,但只是因为你知道那里有一个库你可以在一行中完成。其他答案都更好,因为他们不使用任何库并利用原生javascript map
方法,但我认为突出underscore
会很好。
var array = [{"a":11,"b":2},{"a":22,"b":2}];
_.pluck(arr, "a");
你不会比那更短。要使用此功能,您需要包含下划线库,此外,您还可以在此处阅读带注释的源代码,这是学习javascript到更高级别的好方法 - http://underscorejs.org/docs/underscore.html
答案 3 :(得分:0)
//给出这个数组:
var arr = [{"a":11,"b":2},{"a":22,"b":2}];
//你可以这样做:
var res = arr.map(function (o, i, a) {
return o.a;
});