So unterbrechen Sie eine forEach-Schleife (Details)
Der Inhalt dieses Artikels befasst sich mit der Unterbrechung der forEach-Schleife (ausführliche Einführung). Ich hoffe, dass er für Sie hilfreich ist.
Wenn Sie eine for-Schleife verwenden, können Sie die break- oder return-Anweisung verwenden, um die for-Schleife zu beenden (return beendet die Funktion direkt). Wenn Sie jedoch eine forEach-Schleife verwenden, wie kommen Sie dann aus der Schleife heraus?
Versuchen Sie, Break und Return zu verwenden
Versuchen Sie zunächst, die Return-Anweisung zu verwenden ---- es funktioniert nicht
[1,2,3,4,5].forEach(item=>{ if(item===2){ return } console.log(item); })
Wie von MDN gegeben Offizielle Erklärung
Warum passiert das? Werfen wir zunächst einen Blick auf die offizielle Dokumentation.
Im MDN-Dokument heißt es eindeutig, dass die forEach-Schleife nicht beendet werden kann.
Zitiert aus MDN
Es gibt keine andere Möglichkeit, eine forEach()-Schleife zu stoppen oder zu unterbrechen, als eine Ausnahme auszulösen. Wenn Sie ein solches Verhalten benötigen, ist die forEach()-Methode das falsche Werkzeug.
Hinweis: Es gibt keine Möglichkeit, die forEach()-Schleife abzubrechen oder zu verlassen, außer eine Ausnahme auszulösen. Wenn Sie dies benötigen, ist die Verwendung der Methode forEach() falsch.
Wenn Sie die Schleife vorzeitig beenden müssen, können Sie Folgendes verwenden:
Einfache Schleife
for...of-Schleife
Array.prototype.every()
Array.prototype.some()
Array.prototype.find()
Array.prototype.findIndex()
Entdecken Sie, warum Break und Return nicht funktionieren
Lassen Sie uns einen ersten Blick darauf werfen at why return hat keine Auswirkung. Die Implementierung von forEach kann im Code ausgedrückt werden und kann als folgende Struktur geschrieben werden:
const arr = [1, 2, 3, 4, 5]; for (let i = 0; i < arr.length; i++) { const rs = (function(item) { console.log(item); if (item > 2) return false; })(arr[i]) }
Die Verwendung der return-Anweisung entspricht dem Kopieren des Rückgabewerts nach rs in Jede selbstausführende Funktion hat jedoch keinen Einfluss auf die gesamte Funktion. Der Grund für die Verwendung der Break-Anweisung zum Melden eines Fehlers besteht darin, dass die Break-Anweisung nicht im Funktionskörper des JS-Interpreters erscheinen kann.
So umgehen Sie die forEach-Schleife
MDN offiziell empfohlene Methode
// every在碰到return false的时候,中止循环。some在碰到return ture的时候,中止循环。 var a = [1, 2, 3, 4, 5] a.every(item=>{ console.log(item); //输出:1,2 if (item === 2) { return false } else { return true } }) var a = [1, 2, 3, 4, 5] a.some(item=> { console.log(item); //输出:1,2 if (item === 2) { return true } else { return false } })
Andere Methoden
1. Verwenden Sie eine for-Schleife oder eine for-in-Schleife anstelle von
2. Verwenden Sie throw, um eine Ausnahme auszulösen
try { [1, 2, 3, 4, 5].forEach(function(item) { if (item=== 2) throw item; console.log(item); }); } catch (e) {}
3. Verwenden Sie Urteilsvermögen, um eine leere Schleife auszuführen 🎜>
var tag; [1, 2, 3, 4, 5].forEach(function(item){ if(!tag){ console.log(item); if(item===2){ tag=true; } }
[1, 2, 3, 4, 5].forEach(function(item){ if(!this.tag){ console.log(item); if(item===2){ this.tag=true; } } },{})
var array=[1, 2, 3, 4, 5] array.forEach(item=>{ if (item == 2) { array = array.splice(0); } console.log(item); })
Ausführungsdetails von forEach1 Der Durchlaufbereich wurde bei der ersten Ausführung des Rückrufs bestimmt, sodass das Verschieben des Inhalts während des Ausführungsprozesses keinen Einfluss auf die Anzahl hat Dies ist das Gleiche wie bei Schleifen. In den folgenden beiden Fällen wird einer eine Endlosschleife verursachen und der andere nicht. Wenn der vorhandene Wert geändert wird, wird der Wert übergeben zum Rückruf ist der Moment, in dem forEach sie durchläuft.
var arr=[1,2,3,4,5] //会造成死循环的代码 for(var i=0;i<arr.length;i++){ arr.push('a') } //不会造成死循环 arr.forEach(item=>arr.push('a'))
var arr=[1,2,3,4,5]; arr.forEach((item,index)=>{ console.log(`time ${index}`) arr[index+1]=`${index}a`; console.log(item) })
JavaScript-Tutorial-Video
auf der chinesischen PHP-Website!Das obige ist der detaillierte Inhalt vonSo unterbrechen Sie eine forEach-Schleife (Details). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.
