Ich habe ein Wörterbuch, das das Format hat
dictionary = {0: {object}, 1:{object}, 2:{object}}
Wie kann ich dieses Wörterbuch durchlaufen, indem ich so etwas mache?
for((key,value) in dictionary){
//Do stuff where key would be 0 and value would be the object
}
javascript
object
iteration
nbroeking
quelle
quelle
for (let [key, value] of Object.entries(obj))
brauche Babel.Antworten:
tl; dr
Map
s möglich .ECMAScript 5:
Nein, mit Objekten ist das nicht möglich.
Sie sollten entweder mit
for..in
oderObject.keys
wie folgt iterierenHinweis: Die
if
obige Bedingung ist nur erforderlich, wenn Sie die Eigenschaften desdictionary
Objekts wiederholen möchten . Dennfor..in
durchläuft alle geerbten aufzählbaren Eigenschaften.Oder
ECMAScript 2015
In ECMAScript 2015 können Sie
Map
Objekte verwenden und mit ihnen iterierenMap.prototype.entries
. Zitat Beispiel von dieser Seite,Oder iterieren Sie mit
for..of
soAusgabe
Oder
Ausgabe
ECMAScript 2017
ECMAScript 2017 würde eine neue Funktion einführen
Object.entries
. Sie können dies verwenden, um das Objekt wie gewünscht zu iterieren.Ausgabe
quelle
Object.keys(dictionary).forEach(function(key) {…
sehr lesbar und kompatibel.Object.entries(object).forEach(([key, val]) => {...});
Versuche dies:
quelle
Die
Object.entries()
Methode wurde in ES2017 angegeben (und wird in allen modernen Browsern unterstützt ):Erläuterung:
Object.entries()
nimmt ein Objekt wie{ a: 1, b: 2, c: 3 }
und verwandelt es in ein Array von Schlüssel-Wert-Paaren :[ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
.Mit können
for ... of
wir die Einträge des so erstellten Arrays durchlaufen.Da wir garantiert haben, dass jedes der so iterierten Array-Elemente selbst ein Array mit zwei Einträgen ist, können wir die Destrukturierung verwenden , um Variablen
key
undvalue
seinem ersten und zweiten Element direkt zuzuweisen .quelle
Sie können so etwas tun:
quelle
Versuche dies:
quelle
WILLKOMMEN IM JAHR 2020 * Sabbern in ES6 *
Hier gibt es einige ziemlich alte Antworten - nutzen Sie die Destrukturierung. Meiner Meinung nach ist dies ohne Zweifel die schönste (sehr lesbare) Möglichkeit, ein Objekt zu iterieren.
quelle
forEach
mitmap
oben, ist es dann möglich, aggregierte Werte.map
gibt dann eine Liste dieser Werte zurück, wodurch der Code möglicherweise auf andere Weise vereinfacht wird.Ich denke, der schnelle und einfache Weg ist
Überprüfen Sie einfach die Dokumentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
quelle
${key} ${value}
);});mit swagger-ui.js
du kannst das -
quelle
Sie können das folgende Skript verwenden.
Ausgänge
1 a
2 b
c 3
quelle
Als Verbesserung der akzeptierten Antwort können Sie stattdessen die Verschachtelung reduzieren, sofern der Schlüssel nicht vererbt wird:
Edit: Infos
Object.hasOwnProperty
hierquelle