修改数组中的所有元素
How to Modify all Array Elements in JavaScript
要更改数组中所有元素的值:
- 使用该
forEach()
方法遍历数组。该方法采用一个函数,该函数通过数组元素、它的索引和数组本身来调用。 - 使用当前迭代的索引更改相应的数组元素。
索引.js
const arr = ['a', 'b', 'c'];
arr.forEach((element, index) => {
arr[index] = element + index;
});
console.log(arr); // 👉️ ['a0', 'b1', 'c2']
我们传递给
Array.forEach()
方法的函数被每个元素、其对应的索引和整个数组调用。
我们使用索引来改变特定位置的数组元素的值。
我们可以通过使用普通for
循环来获得相同的结果。然而,
for
循环有点冗长和间接。
索引.js
const arr = ['a', 'b', 'c'];
for (let index = 0; index < arr.length; index++) {
arr[index] = arr[index] + index;
}
console.log(arr); // 👉️ ['a0', 'b1', 'c2']
这是个人喜好的问题,但在我看来,这种forEach()
方法更具可读性和直观性。
大多数有经验的开发人员都会避免改变数组和对象。相反,他们创建包含所需元素的新数组。我们可以使用该方法来实现这一点。
map
索引.js
const arr = ['a', 'b', 'c'];
const newArr = arr.map((element, index) => {
return element + index;
});
console.log(newArr); // 👉️ ['a0', 'b1', 'c2']
console.log(arr) // 👉️ ['a', 'b', 'c']
我们使用
Array.map
方法的方式与我们使用该方法的方式非常相似forEach
。
但是,这次我们不更改原始数组中的元素。相反,我们创建一个包含修改后元素的新数组。
如果我们多次改变数组的内容,代码会变得很难理解。根据我的经验,更好的方法是创建一个只包含我们需要的元素的新数组。