J'ai un tableau ($ scope.paxlist) ressemblant à ceci:
[
{"name":"Maria","chosen":false},
{"name":"Jenny","chosen":false},
{"name":"Ben","chosen":false},
{"name":"Morris","chosen":false}
]
Je dois prendre uniquement les valeurs de name
et les convertir en chaîne afin de pouvoir utiliser correctement ng-CSV. La sortie souhaitée serait quelque chose comme ceci:
$scope.var = "Maria, Jenny, Ben, Morris"
Compte tenu du fait que j'ai Angular et Lodash déjà chargés, quelqu'un pourrait-il indiquer s'il a déjà un outil pour le faire sans douleur?
En utilisant natif map de javascript, vous pouvez le faire comme ci-dessous
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.
en utilisant Lodash
_.map(data,'name').join(', ')
Lodash propose _.pluck
pour extraire une propriété d'une liste d'objets:
$scope.var = _.pluck($scope.paxlist, 'name').join(', ');
En utilisant la réponse de Mrityunjay, ceci est une autre version de la réponse pour convertir le tableau de chaîne en chaîne:
const _ = require('lodash');
const data = ['abc','xyz','123'];
const translated = _.map(data).join(', ');
console.log(`result: ${translated}`);