112 votes

Comment convertir un tableau d'objets javascript en un tableau de chaînes de caractères de l'attribut d'objet que je veux ?

Duplicata possible :
Accès aux propriétés d'un tableau d'objets

Étant donné :

[{
    'id':1,
    'name':'john'
},{
    'id':2,
    'name':'jane'
}........,{
    'id':2000,
    'name':'zack'
}]

Quel est le meilleur moyen d'obtenir :

['john', 'jane', ...... 'zack']

Dois-je faire une boucle et pousser item.name vers un autre tableau, ou existe-t-il une fonction simple pour le faire ?

186voto

techfoobar Points 33807

Si votre tableau d'objets est items que vous pouvez faire :

var items = [{
  id: 1,
  name: 'john'
}, {
  id: 2,
  name: 'jane'
}, {
  id: 2000,
  name: 'zack'
}];

var names = items.map(function(item) {
  return item['name'];
});

console.log(names);
console.log(items);

Documentation : map()

10voto

Sirko Points 32515

Utilisez le map() native sur les tableaux JavaScript :

var yourArray = [ {
    'id':1,
    'name':'john'
},{
    'id':2,
    'name':'jane'
}........,{
    'id':2000,
    'name':'zack'
}];

var newArray = yourArray.map( function( el ){ 
                                return el.name; 
                               });

3voto

looper Points 1995

Vous pouvez faire cela pour surveiller uniquement les propriétés propres de l'objet :

var arr = [];

for (var key in p) {
    if (p.hasOwnProperty(key)) {
        arr.push(p[key]);
    }
}

0voto

Minko Gechev Points 11295

Vous pouvez utiliser cette fonction :

function createStringArray(arr, prop) {
   var result = [];
   for (var i = 0; i < arr.length; i += 1) {
      result.push(arr[i][prop]);
   }
   return result;
}

Il suffit de passer le tableau d'objets et la propriété dont vous avez besoin. Le script ci-dessus fonctionnera même dans les anciennes implémentations d'EcmaScript.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X