Heim > Web-Frontend > js-Tutorial > Wie ändere ich Array-Elemente innerhalb einer JavaScript-„forEach'-Schleife?

Wie ändere ich Array-Elemente innerhalb einer JavaScript-„forEach'-Schleife?

Mary-Kate Olsen
Freigeben: 2024-11-08 18:06:02
Original
821 Leute haben es durchsucht

How to Modify Array Elements Inside a JavaScript `forEach` Loop?

Ändern von Array-Elementen während einer forEach-Schleife

In JavaScript kann es frustrierend sein, dies zu erkennen, wenn man mit der forEach-Methode über ein Array iteriert dass Änderungen, die an einzelnen Elementen innerhalb der Schleife vorgenommen werden, nicht im ursprünglichen Array widergespiegelt werden. Dies liegt daran, dass forEach eine Kopie des Elements an die Callback-Funktion übergibt und keinen Verweis auf das tatsächliche Element.

Um den Schreibzugriff auf Array-Elemente aus der Iterationsfunktion zu ermöglichen, gibt es zwei Optionen:

Option 1: Array als drittes Argument bereitstellen

Die forEach-Methode akzeptiert ein optionales drittes Argument, das das Array selbst darstellt. Durch Zuweisen eines neuen Werts zum entsprechenden Index des Arrays innerhalb des Rückrufs wird das ursprüngliche Array geändert.

arr.forEach(function(part, index, theArray) {
  theArray[index] = "hello world";
});
Nach dem Login kopieren

Option 2: Verwenden Sie eine Pfeilfunktion mit „Bound This“

Eine andere Möglichkeit, das gewünschte Verhalten zu erreichen, besteht darin, eine Pfeilfunktion als Callback zu verwenden und das Array als diesen Kontext bereitzustellen:

arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr); // use arr as this
Nach dem Login kopieren

Durch die Einrichtung des Arrays als this im Callback können Änderungen vorgenommen werden Die für das Element vorgenommenen Änderungen werden direkt auf das ursprüngliche Array angewendet.

Zusätzliche Überlegungen:

  • Die oben genannten Techniken funktionieren nicht, wenn eine reguläre Funktion (function Deklaration oder Ausdruck) als Rückruf.
  • Wenn Sie beabsichtigen, die Länge des Arrays während der Schleife zu ändern, sollten Sie die herkömmliche for-Schleife anstelle von forEach verwenden, um unbeabsichtigte Konsequenzen zu vermeiden.
  • Vertrautheit mit der Andere Array-Iterationsmethoden (Filter, Karte usw.) sind hilfreich bei der Auswahl des am besten geeigneten Tools für jede Aufgabe.

Das obige ist der detaillierte Inhalt vonWie ändere ich Array-Elemente innerhalb einer JavaScript-„forEach'-Schleife?. 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