forEach和map都是JavaScript中数组的迭代方法,它们的主要区别在于执行操作的方式和返回值。
- forEach:遍历数组中的每个元素,对每个元素执行指定的操作,但不会改变原数组。它接受一个回调函数作为参数,该回调函数有三个参数:当前元素、当前索引和整个数组。forEach没有返回值。
const arr = [1, 2, 3];
arr.forEach(function (item, index, array) {
console.log(item, index, array);
});
- map:遍历数组中的每个元素,对每个元素执行指定的操作,并生成一个新的数组,新数组中的元素是回调函数的返回值。map也接受一个回调函数作为参数,该回调函数有三个参数:当前元素、当前索引和整个数组。map返回一个新数组。
const arr = [1, 2, 3];
const newArr = arr.map(function (item, index, array) {
return item * 2;
});
console.log(newArr); // [2, 4, 6]
总结:forEach主要用于遍历数组并对每个元素执行操作,但不改变原数组;而map主要用于遍历数组并对每个元素执行操作,同时生成一个新的数组。