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.
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.
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.
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
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.
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:
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!