我有一个数组($ 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,是否有人指出他们是否已经有一些工具可以轻松地完成这项任务?
答案 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)
$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}`);