javascript map VS forEach

作者 新城 日期 2018-05-14
javascript map VS forEach

forEach 在部分移动端兼容性不好尽量使用map 或者for 替代

定义

forEach():针对每一个元素执行提供的函数
map():创建一个新数组,其中每一个元素由调用数组中的没一个元素执行提供的函数得来

1
let arr = [1,2,3,4,5]
ForEach

forEach 不会返回有意义的数值。我们在回调函数中直接修改 arr的值

1
2
3
arr.forEach((num,index) => {
return arr[index] = num * 2
})

执行结果

1
arr = [2,4,6,8,10]
Map
1
2
3
let double = arr.map(num => {
return num * 2
})

执行结果

1
doubled = [2,4,6,8,10]

适用场景

forEach()适用于不打算改变原来的数组 比如说打印等操作

map()适用于你要改变数组值的时候 不仅仅在于它更快 而且返回一个新数组

总结
  • 能用forEach()做到的, map()同样可以做到
  • map()会分配内存空间存储新数组并返回,forEach()不会返回数据。
  • forEach()允许callback更改原始数组的元素。map()返回新的数组。