Heim > Web-Frontend > js-Tutorial > Hauptteil

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

Mary-Kate Olsen
Freigeben: 2024-11-11 06:50:02
Original
930 Leute haben es durchsucht

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"
Nach dem Login kopieren

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";
});
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

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