Массив для строки с 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, может ли кто-нибудь указать, есть ли у них какой-нибудь инструмент для этого безболезненно?
Ответы
Ответ 1
Используя собственную карту 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(', ')
Ответ 2
Lodash предлагает _.pluck
извлекать свойство из списка объектов:
$scope.var = _.pluck($scope.paxlist, 'name').join(', ');
Ответ 3
Вы можете использовать _.map или _.pluck, как это
$scope.var = _.map($scope.paxlist, 'name').join(', ');
или
$scope.var = _.pluck($scope.paxlist, 'name').join(', ');
Ответ 4
Используя ответ Mrityunjay, это еще одна версия ответа на преобразование массива строки в строку:
const _ = require('lodash');
const data = ['abc','xyz','123'];
const translated = _.map(data).join(', ');
console.log('result: ${translated}');