使用AngularJS和Lodash串联的数组

时间:2014-12-22 14:50:09

标签: javascript angularjs lodash

我有一个数组($ scope.paxlist),如下所示:

[
   {"name":"Maria","chosen":false},
   {"name":"Jenny","chosen":false},
   {"name":"Ben","chosen":false},
   {"name":"Morris","chosen":false}
]

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

$scope.var = "Maria, Jenny, Ben, Morris"

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

4 个答案:

答案 0 :(得分:33)

使用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.

使用Lodash

_.map(data,'name').join(', ')

答案 1 :(得分:5)

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

$scope.var = _.pluck($scope.paxlist, 'name').join(', ');

答案 2 :(得分:2)

您可以使用_.map _.pluck,就像这样

$scope.var = _.map($scope.paxlist, 'name').join(', ');

$scope.var = _.pluck($scope.paxlist, 'name').join(', ');

答案 3 :(得分:2)

通过使用Mrityunjay的答案,这是将字符串数组转换为字符串的答案的另一个版本:

const _ = require('lodash');
const data = ['abc','xyz','123'];
const translated = _.map(data).join(', ');
console.log(`result: ${translated}`);