Heim > Web-Frontend > js-Tutorial > Warum unterbricht „return' eine „forEach'-Schleife in JavaScript nicht?

Warum unterbricht „return' eine „forEach'-Schleife in JavaScript nicht?

Linda Hamilton
Freigeben: 2024-12-20 18:24:12
Original
897 Leute haben es durchsucht

Why Doesn't `return` Break a `forEach` Loop in JavaScript?

Verstehen des Verhaltens von return innerhalb der forEach-Funktion

In JavaScript gibt es oft eine falsche Vorstellung über das Verhalten des Schlüsselworts return innerhalb der forEach-Funktion . Dieser Artikel soll die beabsichtigte Verwendung verdeutlichen.

Bedenken Sie den folgenden Codeausschnitt:

$('button').click(function () {
  [1, 2, 3, 4, 5].forEach(function (n) {
    if (n == 3) {
      // It should break out here and doesn't alert anything after
      return false;
    }
    alert(n);
  });
});
Nach dem Login kopieren

In diesem Code wird die Return-Anweisung innerhalb der forEach-Schleife verwendet, um die Iteration vorzeitig zu stoppen. Der Code alarmiert jedoch weiterhin die nachfolgenden Elemente im Array. Warum passiert das?

Die wahre Natur der Rückgabe in forEach

Entgegen der landläufigen Meinung hat die Rückgabeanweisung innerhalb der Funktion forEach eine andere Bedeutung als in Schleifenkonstrukte wie for oder while. In forEach bedeutet die Rückgabe nicht, dass die Schleife vorzeitig beendet wird.

Erklärung zum Mozilla Developer Network

Laut der offiziellen Dokumentation des Mozilla Developer Network:

„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 Die forEach()-Methode ist das falsche Werkzeug.

Einfache Schleife: Erstellen Sie eine traditionelle for- oder while-Schleife mit expliziten Bedingungen für früh Beendigung.

for...of-Schleife:
    Nutzen Sie die for...of-Schleife, die sofortige Beendigungsmöglichkeiten mit Break-Anweisungen bietet.
  • Array. prototyp.every():
  • Verwenden Sie die Methode every(), mit der Sie auf jedes Element ein Prädikat anwenden und die Schleife vorzeitig unterbrechen können, wenn das Prädikat für eines davon „false“ zurückgibt Element.
  • Andere Array-Methoden:
  • Andere Methoden wie some(), find() und findIndex() bieten ebenfalls Möglichkeiten, die Schleife basierend auf bestimmten Kriterien zu unterbrechen.

Das obige ist der detaillierte Inhalt vonWarum unterbricht „return' eine „forEach'-Schleife in JavaScript nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage