map和forEach 的粗比较
相同
- 对空数组都是不会执行回调函数的
- 都能够对数组进行循环
区别
- map() 不会改变原始数组,并且会返回一个新的数组
- forEach() 会改变原始数组,返回值为undefined
总结
- map比foreach执行的速度更快,且不会改变源数据
const a =[1,2,3,4];
const b = a.map(item => {
if(item > 2) return;
return item
})
// b [1,2,undefined,undefined]
const c = a.forEach(item => {
if(item > 2) return;
return item
})
// c undefined