我有一个对象数组,例如就像下面的一样。
[{ "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
有没有什么优雅的方式不需要我们循环?
最佳答案
您可以使用 map
函数,如下所示。这是现代浏览器的脚本,我的意思是它可以在 IE8+
版本中完美运行。它不适用于 IE8
旧版本。
根据文档
The map() method creates a new array with the results of calling a provided function on every element in this array.
和
Calls a defined callback function on each element of an array, and returns an array that contains the results.
var result = arrayName.map(function(a) {return a.foo;});
关于jquery - 从 Angular 对象数组中选择特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31979856/