Équivalent Javascript de la méthode du dictionnaire values ​​() de Python

En Python, je peux utiliser la méthode .values() pour parcourir les valeurs d’un dictionnaire.

Par exemple:

 mydict = {'a': [3,5,6,43,3,6,3,], 'b': [87,65,3,45,7,8], 'c': [34,57,8,9,9,2],} values = mydict.values(): 

values contient:

 [ [3,5,6,43,3,6,3,], [87,65,3,45,7,8], [34,57,8,9,9,2], ] 

Comment puis-je obtenir uniquement les valeurs du dictionnaire en Javascript?

MODIFIER

Mon exemple original n’était pas clair sur ce que je voudrais faire. Je ne veux qu’une liste / un tableau des valeurs dans le dictionnaire.

Je me rends compte que je peux parcourir la liste et créer une nouvelle liste de valeurs, mais y a-t-il un meilleur moyen?

Actualisé
J’ai choisi la réponse d’Adnan car c’était la première. Je ne fais que poster un peu plus de détails si ça aide.

Le for..in loop est ce que vous recherchez –

 var dictionary = { id:'value', idNext: 'value 2' } for (var key in dictionary){ //key will be -> 'id' //dictionary[key] -> 'value' } 

Pour obtenir toutes les clés dans l’object dictionary , vous pouvez Object.keys(dictionary)
Cela signifie que vous pouvez faire la même chose dans une boucle de tableau –

 var keys = Object.keys(dictionary); keys.forEach(function(key){ console.log(key, dictionary[key]); }); 

Cela s’avère particulièrement pratique lorsque vous souhaitez filtrer des clés sans écrire de if..else boucles, si elles ne le sont pas.

 keys.filter(function(key){ //return dictionary[key] % 2 === 0; //return !key.match(/regex/) // and so on }); 

Mise à jour – Pour obtenir toutes les valeurs dans le dictionnaire, il n’y a pas d’autre moyen que d’effectuer une boucle. Comment faire la boucle est une question de choix cependant. Personnellement, je préfère

 var dictionary = { a: [1,2,3, 4], b:[5,6,7] } var values = Object.keys(dictionary).map(function(key){ return dictionary[key]; }); //will return [[1,2,3,4], [5,6,7]] 

Avec jQuery, il existe une version à une seule ligne utilisant $ .map ():

 var dict = {1: 2, 3: 4}; var values = $.map(dict, function(value, key) { return value }); var keys = $.map(dict, function(value, key) { return key }); 

Object.values ​​() est disponible dans Firefox 47 et Chrome 51, voici un polyfill à une ligne pour les autres navigateurs:

 Object.values = Object.values || function(o){return Object.keys(o).map(function(k){return o[k]})}; 

N’essayant pas de dire que l’une des autres réponses est fausse, mais si vous n’êtes pas opposé à l’utilisation d’une bibliothèque externe, underscore.js a une méthode pour cela précisément:

 _.values({one: 1, two: 2, three: 3}); // returns [1, 2, 3] 

Vous pouvez utiliser for in

 mydict = {'a': [3,5,6,43,3,6,3,], 'b': [87,65,3,45,7,8], 'c': [34,57,8,9,9,2]}; for (var key in mydict){ alert(mydict[key]); } 

En javascript, vous utilisez for..in pour boucler les propriétés d’un object.

 var mydict = { 'a': [3,5,6,43,3,6,3,], 'b': [87,65,3,45,7,8], 'c': [34,57,8,9,9,2] }; for (var key in mydict) { console.log(mydict[key]); } 

Dans ES6, actuellement pris en charge par défaut dans Firefox et avec les indicateurs dans Chrome, vous pouvez le faire:

 a = {'a': [3,5,6,43,3,6,3,], 'b': [87,65,3,45,7,8], 'c': [34,57,8,9,9,2]} values = [a[x] for (x in a)]; 

values seront désormais le tableau attendu.

Ceci est également utile pour le golf de code . Enlever les espaces autour for le réduire à 17 caractères.

si vous voulez obtenir uniquement les valeurs, utilisez le code suivant:

  for(keys in mydict){ var elements = mydict[keys]; console.log(elements); } 

Vous pouvez obtenir des éléments individuels par valeur d’index dans le tableau des éléments.