我想在数组上使用 forEach。由于 forEach 是一个 mutator,它应该改变原始数组中的值,但事实并非如此。这里有什么问题?
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]
这里发生了什么?
最佳答案
不,forEach
不会改变原始数组。
您可以通过提供 index
的第二个参数来实现您正在寻找的东西。 ,然后更新原始数组的值。
let array = [1, 2, 3, 4];
array.forEach((ele, index) => array[index] = ele * 2);
console.log(array);
forEach 的文档
关于JavaScript forEach : mutate elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69445950/