jquery - 从 Angular 对象数组中选择特定属性

标签 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

有没有什么优雅的方式不需要我们循环?

最佳答案

您可以使用 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/

相关文章:

javascript - 在jquery中读取以#开头的id

javascript - Angular Testing Controller 导致 TypeError : Object #<Object> has no method '$watch'

javascript - 在 Angular js中将数据发送到多个数组中

jquery - nested_form gem 添加有效但删除失败...为什么?

javascript - jQuery .each()-确定最后一项[重复项]

c - 为什么数组索引和地址与分配给数组的字符串具有相同的值?

c - 使用 sizeof 作为指向 2 个 float 数组的指针

orderBy后Angularjs错误$index

javascript - jQuery UI DatePicker - 只显示全年的 3 天

php - 变量不显示查询的第一行