首先来看map的用法
var arr = [ 1,2,3];
var arr2 = arr.map( item => item*2)
arr2 // [2,4,6]
map用来返回一个新数组。遍历数组,对每一个元素进行变换后放入新数组。
接收三个参数
- 当前元素
- 索引
- 原数组
而reduce则数组的元素通过回调函数最终转换成一个值
接收两个参数
- 回调函数
- 初始值
回调函数有四个参数
- 累积值
- 当前值
- 当前索引
- 原数组
下面代码是reduce实现Map
var arr = [1,2,3]
var arr2 = arr.reduce( (acc,cur) => {
cur = cur * 2
acc.push(cur)
},[])
map返回的是新数组,所以只需要将reduce的第二个参数设为 [ ] 即可
网友评论