forEach 在部分移动端兼容性不好尽量使用map 或者for 替代
定义
forEach()
:针对每一个元素执行提供的函数map()
:创建一个新数组,其中每一个元素由调用数组中的没一个元素执行提供的函数得来
1 | let arr = [1,2,3,4,5] |
ForEach
forEach
不会返回有意义的数值。我们在回调函数中直接修改 arr
的值
1 | arr.forEach((num,index) => { |
执行结果
1 | arr = [2,4,6,8,10] |
Map
1 | let double = arr.map(num => { |
执行结果1
doubled = [2,4,6,8,10]
适用场景
forEach()
适用于不打算改变原来的数组 比如说打印等操作
map()
适用于你要改变数组值的时候 不仅仅在于它更快 而且返回一个新数组
总结
- 能用
forEach()
做到的,map()
同样可以做到 map()
会分配内存空间存储新数组并返回,forEach()
不会返回数据。forEach()
允许callback更改原始数组的元素。map()
返回新的数组。