forEach ⽅法是⽆法中断的,即使在遍历过程中使⽤ return 语句也⽆法停⽌遍历。⽽ map ⽅法可以使⽤ return 语句中断遍历。
map ⽅法会⽣成⼀个新的数组,并将每次遍历的返回值按顺序放⼊新数组中。⽽ forEach⽅法没有返回值,仅⽤于遍历数组。
map ⽅法可以链式调⽤其他数组⽅法,⽐如 filter 、 reduce 等。⽽ forEach ⽅法不能链式调⽤其他数组⽅法。
js
const numbers = [1, 2, 3, 4, 5];
// 使⽤ forEach ⽅法遍历数组
numbers.forEach(function(item, index, array) {
console.log(item); // 输出数组元素
console.log(index); // 输出索引值
console.log(array); // 输出原数组
});
// 使⽤ map ⽅法遍历数组并⽣成新数组
const doubledNumbers = numbers.map(function(item, index, array) {
return item * 2;
});
console.log(doubledNumbers); // 输出 [2, 4, 6, 8, 10]
在上⾯的示例中,使⽤ forEach ⽅法遍历数组并输出元素、索引和原数组。⽽使⽤ map ⽅法遍历数组并返回每个元素的两倍值,⽣成⼀个新的数组 doubledNumbers 。注意,在 map 的回调函数中使⽤了 return 语句来指定返回值。
forEach ⽅法⽤于遍历数组,没有返回值;
map ⽅法也⽤于遍历数组,返回⼀个新的数组,并且可以通过在回调函数中使⽤ return 语句来指定每次遍历的返回值。