Die JavaScript-For-Schleife und welche Schleife wann passt

JavaScript-Schleifen im Vergleich

JavaScript-For-Schleife und alle anderen Schleifen live verglichen | We.Inc

for, for...of, for...in, while, do...while und forEach nebeneinander. Führe jede Schleife auf einem Array, einem String, einem Objekt oder einer Map aus und sieh die Ausgabe oder den Fehler, den sie wirft.

Eine klassische for-Schleife hat drei Teile: for (let i = 0; i < arr.length; i++) { ... }. Nutze sie, wenn du den Index oder eine eigene Schrittweite brauchst. Für einfache Werte nimmst du for...of, für die Keys eines Objekts for...in oder Object.entries, und while, wenn du vorher nicht weißt, wie viele Durchläufe du brauchst.

Welche Schleife zur Aufgabe passt

Jede Schleife auf dieser Seite wiederholt Code, aber sie unterscheiden sich darin, was sie dir pro Durchlauf liefern, worüber sie iterieren können und wie du wieder herauskommst. Mit dem Runner unten richtest du jede Schleife auf vier Arten von Daten und siehst die echte Ausgabe, wodurch Fehler wie for...in auf einem Array oder for...of auf einem einfachen Objekt leicht auffallen.

Häufige Fragen

Was ist der Unterschied zwischen for...of und for...in?

for...of liefert dir Werte aus allem, was iterierbar ist, etwa die Elemente eines Arrays oder die Zeichen eines Strings. for...in liefert dir Eigenschaftsnamen als Strings, inklusive geerbter aufzählbarer. Auf einem Array liefert for...in '0', '1', '2' statt der Elemente.

Wie breche ich aus einer forEach-Schleife aus?

Gar nicht, außer durch das Werfen eines Fehlers. Wechsle zu for...of, das break unterstützt, oder zu some, every, find oder findIndex, die von selbst anhalten, sobald sie eine Antwort haben.

Wie iteriere ich in JavaScript über ein Objekt?

Nutze for (const [key, value] of Object.entries(obj)). Damit erfasst du nur die eigenen Keys des Objekts und bekommst beide Teile. for...of direkt auf einem einfachen Objekt wirft TypeError: obj is not iterable.

Wie verlasse ich zwei verschachtelte Schleifen auf einmal?

Setze ein Label vor die äußere Schleife und nutze es mit break: outer: for (...) { for (...) { if (found) break outer; } }. continue outer springt stattdessen zum nächsten Durchlauf der äußeren Schleife.

Wie laufe ich rückwärts durch eine Schleife?

Beginne beim letzten Index und zähle herunter: for (let i = arr.length - 1; i >= 0; i--). So entfernst du auch gefahrlos Elemente mit splice während der Schleife, denn die Positionen, die du noch besuchen musst, verschieben sich nicht.

Die drei Teile einer for-Schleife lesen

break, continue und Labels

Schleifenmuster zum Kopieren

Klassisches for, vorwärts, rückwärts und in Schritten

Ändere Startwert, Bedingung oder Schrittweite, um beliebig zu zählen.

for...of mit dem Index

entries() verbindet jeden Wert mit seiner Position, sodass du beides ohne Zähler bekommst.

while und do...while

do...while prüft seine Bedingung nach dem Schleifenkörper, daher läuft der Körper einmal, selbst wenn die Bedingung von Anfang an false ist.

Verschachtelte Schleifen mit einem Label verlassen

break grid stoppt beide Schleifen, sobald der erste Treffer gefunden ist.

Jedes Element der Reihe nach abwarten

for...of hält bei jedem await an. Derselbe Code in forEach würde alle Requests gleichzeitig starten und nicht warten.

Schleifen-Runner

Wähle eine Schleife und Daten. Die Schleife läuft wirklich, und jeder Durchlauf wird unten aufgelistet.

Schleife

Daten

Array

String

Einfaches Objekt

Map

break nach dem dritten Durchlauf

Was ausgeführt wird

Ausgabe

Durchlauf {n}: {v}

forEach hat kein break. Das return im Callback beendet nur diesen einen Aufruf, daher laufen trotzdem alle Durchläufe.

Wirft {v}

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap