JavaScript forEach:改变元素

JavaScript forEach: mutate elements

我想在数组上使用 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]

这是怎么回事?

Array#forEach 回调有第二个和第三个可选参数,您可以使用它们来访问和改变每个元素:

index [Optional]: The index of element in the array.

array [Optional]: The array forEach() was called upon.

const array = [1, 2, 3, 4];

array.forEach((_, index, arr) => arr[index] *= 2);

console.log(array);

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

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

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

console.log(array);

forEach

的文档