使用 JavaScript 更新数组中的所有元素

更新数组中的所有元素

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 个参数:

  1. 元素
  2. 指数
  3. 数组

在每次迭代中,我们使用索引来更新当前数组元素的值。

请注意,这会原地更改原始数组。

不改变原始数组的替代解决方案是使用
Array.map
方法。

使用 map() 更新数组中的所有元素#

更新数组中的所有元素:

  1. 调用map()方法迭代数组。
  2. 在每次迭代中,返回更新后的值。
  3. 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()方法,因为我发现突变很难在整个代码库中进行推理和跟踪。