用Array的reduce方法实现map方法

首先来看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的第二个参数设为 [ ] 即可

你可能感兴趣的:(用Array的reduce方法实现map方法)