Array to string with AngularJS and Lodash

I have an array ($scope.paxlist) looking like this:

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

I need to take only the values from name and convert them into a string in order to be able to use ng-CSV properly.
The desired output would be something like this:

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

Taking into consideration that I have Angular and Lodash already loaded, could anybody point out if they have already some tool to do this painlessly?

Using native map of javascript you can do it as bellow

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.

Using Lodash

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

Lodash offers _.pluck to extract a property from a list of objects:

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

You can use _.map or _.pluck, like this

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

or

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

By using Mrityunjay’s answer, this is another version of the answer to convert array of string to string:

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


The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .
Read More:   How to use aria-expanded="true" to change a css property

Similar Posts