首頁 >web前端 >js教程 >在 JavaScript 中使用「forEach」時可以修改陣列值嗎?

在 JavaScript 中使用「forEach」時可以修改陣列值嗎?

DDD
DDD原創
2024-11-09 04:58:02392瀏覽

Can You Modify Array Values While Using `forEach` in JavaScript?

在迭代期間使用 forEach 修改陣列值

在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn