forEach和map都是数组对象中的方法,但它们的功能不同。
1. forEach
forEach可以遍历数组中的每个元素并执行一个回调函数。该回调函数接受三个参数:当前元素的值、当前元素的索引和数组本身。forEach方法不返回任何值,仅用于迭代数组。
示例:
const array = [1, 2, 3, 4];
array.forEach(function(element, index, arr) {
console.log(`元素值:${element},索引:${index}`);
});
输出:
元素值:1,索引:0
元素值:2,索引:1
元素值:3,索引:2
元素值:4,索引:3
2. map
map方法创建一个新数组,其中的元素为原始数组中每个元素调用一个指定的函数后的返回值。该回调函数接受当前元素的值、当前元素的索引和数组本身,并返回一个新值。原始数组不会被改变。
示例:
const array = [1, 2, 3, 4];
const newArray = array.map(function(element, index, arr) {
return element * 2;
});
console.log(`原始数组:${array}`);
console.log(`新数组:${newArray}`);
输出:
原始数组:1,2,3,4
新数组:2,4,6,8
需要注意的是,map方法返回一个新的数组,因此需要定义一个变量来接收这个新数组。
综上所述,forEach主要用于循环遍历数组,而map则用于对数组中每个元素进行操作并返回一个新的数组。