我有一组对象,例如如下一个。
[{ "foo" : "a", "bar" : "x", baz: 1},
{ "foo" : "b", "bar" : "y", baz: 2},
{ "foo" : "c", "bar" : "z", baz: 3}]
现在我想从这个数组中只选择foo属性到另一个数组,如
["a","b","c"]
我可以使用循环并将每个属性添加到另一个数组
来完成此操作var fooArray =[];
angular.forEach(arrayName, function (value, key) {
fooArray.push(value.foo);
});
但是有可能就像我们在c#linq select语句中所做的那样没有我们循环到数组中
var fooArray = arrayName.Select(m => m.foo) // c# way
没有我们循环,有没有优雅的方式?
答案 0 :(得分:13)
您可以使用下面的map
功能。它是现代浏览器的脚本,我的意思是它将在IE8+
版本中完美地运行。它不适用于IE8
旧版本。
根据文件
map()方法创建一个新数组,其中包含调用a的结果 为此数组中的每个元素提供了函数。
和强>
在数组的每个元素上调用定义的回调函数,并且 返回包含结果的数组。
var result = arrayName.map(function(a) {return a.foo;});