JavaScript forEach:改变元素

Man*_*xit 8 javascript arrays foreach loops

我想在数组上使用 forEach 。由于 forEach 是一个变异器,它应该改变原始数组中的值,但事实并非如此。这里有什么问题?

let array = [1, 2, 3, 4]; //simple array declaration

array.forEach((ele) => ele * 2); //using forEach to double each element in "array"

console.log(array); //logs [1,2,3,4] instead of [1,4,6,8]
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

小智 6

不,forEach不会改变原始数组。

您可以通过给出第二个参数index,然后更新原始数组的值来实现您正在寻找的内容。

let array = [1, 2, 3, 4];
array.forEach((ele, index) => array[index] = ele * 2);

console.log(array);
Run Code Online (Sandbox Code Playgroud)

forEach的文档