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