使用AngularJS和Lodash串联的数组

Eri*_*ans 20 javascript angularjs lodash

我有一个数组($ scope.paxlist)看起来像这样:

[
   {"name":"Maria","chosen":false},
   {"name":"Jenny","chosen":false},
   {"name":"Ben","chosen":false},
   {"name":"Morris","chosen":false}
]
Run Code Online (Sandbox Code Playgroud)

我只需要从中获取值name并将它们转换为字符串,以便能够正确使用ng-CSV.期望的输出将是这样的:

$scope.var = "Maria, Jenny, Ben, Morris"
Run Code Online (Sandbox Code Playgroud)

考虑到我已经加载了Angular和Lodash,任何人都可以指出他们是否已经有一些工具可以轻松地完成这项工作?

Mri*_*jay 35

使用javascript的原生地图,你可以做到如下

var data = [
   {"name":"Maria","chosen":false},
   {"name":"Jenny","chosen":false},
   {"name":"Ben","chosen":false},
   {"name":"Morris","chosen":false}
];

data.map(function(obj){return obj.name;}).join(', '); // returns the expected output.
Run Code Online (Sandbox Code Playgroud)

使用Lodash

_.map(data,'name').join(', ')
Run Code Online (Sandbox Code Playgroud)

  • Lodash的`pluck()`[已被弃用](https://github.com/lodash/lodash/wiki/Changelog#v400)支持Lodash的`map()`. (5认同)

Fel*_*ing 5

Lodash提供_.pluck从对象列表中提取属性:

$scope.var = _.pluck($scope.paxlist, 'name').join(', ');
Run Code Online (Sandbox Code Playgroud)