Ich versuche, über ein Objekt mit der forEach-Array-Methode zu iterieren.Warum kann ich nicht über Object mit jedem iterieren
var obj = {"a":1, "b":2, "c":3};
[].forEach.call(obj, function(n, key) {
console.log(key, n)
})
drucken sollte
a: 1
b: 2
c: 3
Das funktioniert nicht, wie es auch im Debugger undefined zurückgibt, wenn ich künstlich Fügen Sie dem Obj
obj.length = 3;
eine Längeneigenschaft hinzu 0
Wie mache ich dieses Objekt Array wie ich kann Array-Methode wie foreach auf das Objekt aufrufen. Ich bin mir bewusst, dass es andere Möglichkeiten gibt, über ein Objekt zu iterieren. Ich habe mich nur gefragt, was ich in diesem Szenario falsch gemacht habe.
Weil 'Array.forEach' für Arrays gemeint ist, oder zumindest auf iterable Array artige Objekte mit einer Länge aufgerufen werden. Verwenden Sie stattdessen eine For-In-Schleife. – adeneo
'Object.keys (obj) .forEach (Funktion (Schlüssel) {console.log (Schlüssel, obj [Schlüssel]);}); ' –
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in – j08691