1.返回值
forEach()方法返回undefined ,而map()返回一个包含已转换元素的新数组。
map()返回新的转换后的数组。
如果我们需要传递一个空数组来创建一个新的转换后的数组在这种情况下,建议使用map()方法。
2.链接其他方法
map()方法输出可以与其他方法(如reduce()、sort()、filter())链接在一起,以便在一条语句中执行多个操作。
forEach()则不可以。
3.中断遍历
这两种都不能中断遍历,如果需要中断遍历,则用for-in,否则抛出异常
const numbers = [1, 2, 3, 4, 5];
const eachArray = [];
numbers.forEach(x => {
if(x == 3) break; // <- SyntaxError
eachArray.push(x*x);
});
const mapArray = numbers.map(x => {
if(x == 3) break; // <- SyntaxError
return x*x;
});