更新数组中的所有元素
Update all Elements in an Array using JavaScript
要更新数组的所有元素,请调用数组的forEach()
方法,并向其传递一个函数。为数组中的每个元素调用该函数,并允许我们更新数组的值。
索引.js
const arr = ['zero', 'one', 'two']; arr.forEach((element, index) => { arr[index] = element + index; }); // 👇️ ['zero0', 'one1', 'two2'] console.log(arr);
如果您不想更改原始数组,请向下滚动到下一个副标题。
我们传递给
Array.forEach
方法的函数会为数组中的每个元素调用。
每次,它都会传递以下 3 个参数:
- 元素
- 指数
- 数组
在每次迭代中,我们使用索引来更新当前数组元素的值。
请注意,这会原地更改原始数组。
不改变原始数组的替代解决方案是使用
Array.map
方法。
使用 map() 更新数组中的所有元素#
更新数组中的所有元素:
- 调用
map()
方法迭代数组。 - 在每次迭代中,返回更新后的值。
- 该
map()
方法将返回一个包含更新值的新数组。
索引.js
const arr = ['zero', 'one', 'two']; const newArr = arr.map((element, index) => { return element + index; }); // 👇️ ['zero0', 'one1', 'two2'] console.log(newArr); // 👇️ ['zero', 'one', 'two'] console.log(arr);
我们传递给map()
方法的函数会为数组中的每个元素调用。
它传递了以下 3 个参数:
- 元素
- 指数
- 数组
我们从回调函数返回的任何内容都会添加到该map()
方法返回的新数组中。
该
map
方法不会改变原始数组,它会返回一个新数组。您选择哪种方法是个人喜好的问题。我会采用这种
map()
方法,因为我发现突变很难在整个代码库中进行推理和跟踪。