在 JavaScript 中,forEach 方法可讓您迭代陣列的元素。但是,預設情況下,您無法在迭代回呼函數中修改數組的值。
考慮以下範例:
var arr = ["one", "two", "three"]; arr.forEach(function(part) { part = "four"; return "four"; }); alert(arr); // Output: ["one", "two", "three"]
如您所見,陣列 arr 在 forEach 之後保持不變環形。這是因為 forEach 回呼函數只接收陣列元素的副本,而不是對實際元素的參考。
要在迭代期間修改陣列的值,您需要存取實際的元素。您可以透過向回調函數傳遞第三個參數來實現此目的,該參數是一個數組指針,如下所示:
arr.forEach(function(part, index, theArray) { theArray[index] = "hello world"; });
在此範例中,theArray 是數組指針。您可以使用它來存取和修改目前索引處的實際元素。
或者,您可以使用 forEach 方法的第二個參數來指定 this 值對於回調函數。這個值將是數組指標本身。
arr.forEach(function(part, index) { this[index] = "hello world"; }, arr); // Array must be passed as `this`
這兩種方法都允許您在使用 forEach 方法迭代數組時修改數組的值。
以上是在 JavaScript 中使用「forEach」時可以修改陣列值嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!