首页 > web前端 > js教程 > 在 JavaScript 中使用'forEach”时可以修改数组值吗?

在 JavaScript 中使用'forEach”时可以修改数组值吗?

DDD
发布: 2024-11-09 04:58:02
原创
442 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板