从角度对象数组中选择特定属性

时间:2015-08-13 05:04:01

标签: jquery arrays angularjs linq

我有一组对象,例如如下一个。

[{ "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

没有我们循环,有没有优雅的方式?

1 个答案:

答案 0 :(得分:13)

您可以使用下面的map功能。它是现代浏览器的脚本,我的意思是它将在IE8+版本中完美地运行。它不适用于IE8旧版本。

根据文件

  

map()方法创建一个新数组,其中包含调用a的结果   为此数组中的每个元素提供了函数。

  

在数组的每个元素上调用定义的回调函数,并且   返回包含结果的数组。

var result = arrayName.map(function(a) {return a.foo;});