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。由于 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);