forEach 和 map 都是数组的迭代方法,但它们有一些重要的区别:
返回值:forEach 没有返回值,它仅仅是对数组的每个元素执行提供的函数。而 map 会创建一个新的数组,数组中的每个元素都是原始数组元素通过提供的函数处理后的结果。
let arr = [1, 2, 3, 4, 5];
arr.forEach((value, index, array) => {
// 对数组的每个元素执行操作
});
let newArr = arr.map((value, index, array) => {
// 返回一个新的元素
return value * 2;
});
改变原数组:forEach 可以改变原数组,而 map 不会改变原数组,它会返回一个新的数组。
用途:如果你需要改变原数组或者对数组进行操作但不需要结果,那么可以使用 forEach。如果你需要对数组的每个元素进行操作并需要结果,那么应该使用 map。
在选择 forEach 还是 map 时,你应该根据你的需求和它们的语义差异来选择,而不仅仅是基于性能考虑。