Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Die JavaScript-Ausnahme "ist nicht iterierbar" tritt auf, wenn der Wert, der in ein Array oder einen Funktionsaufruf gespreadet wird, als rechte Seite in for...of, als Argument einer Funktion wie Promise.all oder Set(), oder als rechte Seite bei einer Array-Destrukturierung angegeben wird, kein iterierbares Objekt ist. Dieser Fehler tritt auch auf, wenn Array.fromAsync() oder for await...of mit einem nicht-asynchronen Iterierbaren verwendet wird.
Der Wert, der in ein Array oder einen Funktionsaufruf gespreadet wird, als rechte Seite in for...of, oder als Argument einer Funktion wie Promise.all oder Set(), oder als Quelle eines Array-Destrukturierungsmusters angegeben wird, ist kein iterierbares Objekt. Ein iterierbares Objekt kann ein eingebauter iterierbarer Typ wie Array, String oder Map, ein Generatorergebnis oder ein Objekt sein, das das iterierbare Protokoll implementiert.
In einigen Laufzeitumgebungen könnte sich herausstellen, dass das nicht-iterierbare Objekt undefined ist.
In JavaScript sind Objecte nicht iterierbar, es sei denn, sie implementieren das iterierbare Protokoll. Daher können Sie for...of nicht verwenden, um über die Eigenschaften eines Objekts zu iterieren.
Stattdessen müssen Sie Object.keys oder Object.entries verwenden, um über die Eigenschaften oder Einträge eines Objekts zu iterieren.
Eine andere Möglichkeit für diesen Anwendungsfall könnte die Verwendung eines Map sein:
Generatorfunktionen sind Funktionen, die Sie aufrufen, um ein iterierbares Objekt zu erzeugen.
Wenn sie nicht aufgerufen werden, ist das Function-Objekt, das dem Generator entspricht, aufrufbar, aber nicht iterierbar. Das Aufrufen eines Generators erzeugt ein iterierbares Objekt, das über die während der Ausführung des Generators geernteten Werte iteriert.
Benutzerdefinierte iterierbare Objekte können erstellt werden, indem die Methode Symbol.iterator implementiert wird. Sie müssen sicherstellen, dass Ihre Iteratormethode ein Objekt zurückgibt, das ein Iterator ist, was bedeutet, dass es eine next-Methode haben muss.
Hier ist eine korrekte Implementierung:
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.