2014-12-22 14 views
13

Ho un array ($ scope.paxlist) simile a questo:Array di stringa con AngularJS e Lodash

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

ho bisogno di prendere solo i valori da name e convertirli in una stringa in modo da essere in grado di utilizzare correttamente ng-CSV. L'output desiderato sarebbe qualcosa di simile a questo:

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

Tenendo conto che ho angolare e Lodash già caricati, chiunque potrebbe indicare se hanno già qualche strumento per fare questo in modo indolore?

risposta

23

Utilizzando nativo mappa di javascript si può fare come muggito

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. 

Utilizzando Lodash

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

di Lodash 'coratella()' è [stato deprecato] (https://github.com/lodash/lodash/wiki/Changelog#v400) a favore di 'mappa di Lodash()'. – AlecRust

2

È possibile utilizzare _.map o _.pluck, come questo

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

o

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

Lodash offre _.pluck per estrarre una proprietà da un elenco di oggetti:

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

Utilizzando la risposta di Mrityunjay, questa è un'altra versione della risposta per convertire array di stringhe a stringa:

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