Массив для строки с 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}');