Ä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"; });
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
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:
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!