Heim >Web-Frontend >js-Tutorial >Wie ändere ich Array-Werte innerhalb einer forEach-Schleife?

Wie ändere ich Array-Werte innerhalb einer forEach-Schleife?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-11 06:50:021002Durchsuche

How do I modify array values within a forEach loop?

Array-Werte mit forEach ändern

Beim Durchlaufen eines Arrays mit der forEach-Methode kommt es häufig zu Situationen, in denen Sie die Elemente des Arrays ändern möchten. Der Versuch, neue Werte direkt innerhalb des Rückrufs zuzuweisen, wirkt sich jedoch nicht immer auf das ursprüngliche Array aus.

Unerwartetes Verhalten

Beachten Sie den folgenden Code:

var arr = ["one", "two", "three"];

arr.forEach(function(part) {
  part = "four";
  return "four";
})

alert(arr); // Output: "one,two,three"

Trotz der Zuweisung innerhalb des Rückrufs, das ursprüngliche Array arr gibt seine ursprünglichen Werte zurück. Dies geschieht, weil forEach eine flache Kopie der Elemente des Arrays für die Rückruffunktion erstellt.

Schreibzugriff gewähren

Um die Elemente eines Arrays aus einer forEach-Iteration zu ändern, müssen wir das ursprüngliche Array als übergeben ein zusätzlicher Parameter. Dadurch können wir innerhalb des Rückrufs direkt auf das Array selbst zugreifen und es ändern:

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

Durch die Verwendung von theArray[index] können wir das ursprüngliche Array-Element überschreiben.

Dies als Alternative

Alternativ können wir das zweite Argument von forEach verwenden, um diesen Wert innerhalb des Rückrufs festzulegen. Indem wir dies auf das ursprüngliche Array setzen, können wir diesen[Index] verwenden, um die Elemente direkt zu ändern:

arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr); // Use arr as this

Auswahl der Methode

Beide Ansätze ermöglichen die Änderung von Array-Elementen während der Iteration. Die Wahl zwischen den beiden hängt von Ihren Vorlieben ab.

Zusätzliche Array-Dienstprogramme

Es ist erwähnenswert, dass forEach eines von mehreren Array-Dienstprogrammen ist, die vom Array-Prototyp bereitgestellt werden. Zu den anderen häufig verwendeten Dienstprogrammen gehören:

  • filter: Erstellt ein neues Array mit Elementen, die eine bestimmte Bedingung erfüllen.
  • map: Erstellt ein neues Array, indem jedes Element des vorhandenen Arrays transformiert wird.
  • einige: Prüft, ob mindestens ein Element im Array eine bestimmte Bedingung erfüllt.
  • jeder: Prüft, ob alle Elemente im Array eine bestimmte Bedingung erfüllen.
  • find: Gibt das erste Element im Array zurück, das eine bestimmte Bedingung erfüllt.

Das obige ist der detaillierte Inhalt vonWie ändere ich Array-Werte innerhalb einer forEach-Schleife?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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