J'ai un dictionnaire au format
dictionary = {0: {object}, 1:{object}, 2:{object}}
Comment puis-je parcourir ce dictionnaire en faisant quelque chose comme
for((key,value) in dictionary){
//Do stuff where key would be 0 and value would be the object
}
javascript
object
iteration
nbroeking
la source
la source
for (let [key, value] of Object.entries(obj))
, besoin de Babel.Réponses:
tl; dr
Map
art.ECMAScript 5:
Non, ce n'est pas possible avec des objets.
Vous devez soit répéter avec
for..in
, ouObject.keys
, comme ceciRemarque: La
if
condition ci-dessus est nécessaire, uniquement si vous souhaitez itérer les propriétés qui sontdictionary
les propres à l'objet. Parce quefor..in
va parcourir toutes les propriétés énumérables héritées.Ou
ECMAScript 2015
Dans ECMAScript 2015, vous pouvez utiliser des
Map
objets et les itérer avecMap.prototype.entries
. Citant l'exemple de cette page,Ou répéter avec
for..of
, comme çaProduction
Ou
Production
ECMAScript 2017
ECMAScript 2017 introduirait une nouvelle fonction
Object.entries
. Vous pouvez l'utiliser pour itérer l'objet comme vous le souhaitez.Production
la source
Object.keys(dictionary).forEach(function(key) {…
très lisible et compatible.Object.entries(object).forEach(([key, val]) => {...});
Essaye ça:
la source
La
Object.entries()
méthode a été spécifiée dans ES2017 (et est prise en charge dans tous les navigateurs modernes ):Explication:
Object.entries()
prend un objet comme{ a: 1, b: 2, c: 3 }
il se transforme en un réseau de paires de valeurs de clé:[ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
.Avec
for ... of
nous pouvons parcourir les entrées du tableau ainsi créé.Puisque nous sommes garantis que chacun des éléments du tableau ainsi itéré est lui-même un tableau à deux entrées, nous pouvons utiliser la déstructuration pour affecter directement des variables
key
etvalue
à ses premier et deuxième éléments.la source
Vous pouvez faire quelque chose comme ça:
la source
Essaye ça:
la source
BIENVENUE EN 2020 * Drools dans ES6 *
Il y a des réponses assez anciennes ici - profitez de la déstructuration. À mon avis, c'est sans aucun doute la meilleure façon (très lisible) d'itérer un objet.
la source
forEach
parmap
ci-dessus, il est alors possible d'agréger les valeurs.map
renverra alors une liste desdites valeurs, simplifiant ainsi potentiellement le code par d'autres moyens.Je pense que le moyen rapide et facile est
il suffit de vérifier la documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
la source
${key} ${value}
);});en utilisant swagger-ui.js
tu peux le faire -
la source
Vous pouvez utiliser le script ci-dessous.
sorties
1 a
2 b
c 3
la source
Pour améliorer la réponse acceptée, afin de réduire l'imbrication, vous pouvez le faire à la place, à condition que la clé ne soit pas héritée:
Edit: info
Object.hasOwnProperty
icila source