在 JavaScript 中,陣列是不可變的,這意味著它們的元素不能在循環迭代中直接修改。
var arr = ["one", "two", "three"]; arr.forEach(function(part) { part = "four"; return "four"; }) alert(arr);
但是,此程式碼仍會輸出 ["one", "two", "third"],因為 part 是回呼函數中的局部變量,它執行以下操作:不直接修改數組。
要在迭代期間修改數組元素,請使用元素的索引或this 物件存取它們:
// Using index arr.forEach(function(part, index, theArray) { theArray[index] = "hello world"; }); // Using 'this' arr.forEach(function(part, index) { this[index] = "hello world"; }, arr);
第二個例子中,指定arr為回呼函數的this值。因此,this[index] 指的是陣列元素。
考慮使用其他以更直接的方式修改數組的函數,而不是forEach:
這些函數提供了操作數組的有效機制,而無需在迭代中。
以上是可以在迭代期間修改 JavaScript 中的陣列元素嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!