在forEach 循環期間修改數組元素
在JavaScript 中,當使用forEach 方法迭代數組時,意識到這一點可能會令人沮喪對循環內各個元素所做的更改不會反映在原始數組中。這是因為 forEach 將元素的副本傳遞給回呼函數,而不是對實際元素的參考。
要從迭代函數啟用對數組元素的寫入訪問,有兩個選項:
選項1:提供數組作為第三個參數
forEach 方法採用可選的第三個參數,它代表陣列本身。透過在回調中為數組的相應索引分配新值,原始數組將被修改。
arr.forEach(function(part, index, theArray) { theArray[index] = "hello world"; });
選項2:使用帶有Bound This 的箭頭函數
實現所需行為的另一種方法是使用箭頭函數作為回調並提供數組作為this context:
arr.forEach(function(part, index) { this[index] = "hello world"; }, arr); // use arr as this
透過在回調中將數組設定為this,對元素所做的修改將直接套用於原始陣列。
其他注意事項:
以上是如何在 JavaScript `forEach` 迴圈內修改陣列元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!