首页 >web前端 >js教程 >如何在 forEach 循环中修改数组值?

如何在 forEach 循环中修改数组值?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-11 06:50:021000浏览

How do I modify array values within a forEach loop?

使用 forEach 修改数组值

使用 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";
});

通过使用Array[index],我们可以覆盖原始数组元素。

将此作为替代方案

或者,我们可以使用 forEach 的第二个参数在回调中设置 this 值。通过将其设置为原始数组,我们可以使用 this[index] 直接修改元素:

arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr); // Use arr as this

方法选择

两种方法都允许在迭代期间修改数组元素。两者之间的选择取决于偏好。

其他数组实用程序

值得一提的是,forEach 是数组原型提供的几个数组实用程序之一。其他常用的实用程序包括:

  • filter:创建一个包含满足特定条件的元素的新数组。
  • map:通过转换现有数组的每个元素来创建一个新数组。
  • some:检查数组中是否至少有一个元素满足特定条件。
  • every:检查数组中的所有元素是否满足特定条件。
  • find:返回数组中满足特定条件的第一个元素。

以上是如何在 forEach 循环中修改数组值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn