前端笔试题:手写filter、map和reduce

1. filter
用法:
分析:
① 传入一个function作为回调
② 返回一个新数组
③ 回调的参数分别为原数组元素、索引值、原数组,需要有返回值作为判断条件
④ 为tru时会将当前元素放入新数组中
实现:
2. map
分析:
① 大致上与filter一样,传入回调,回调的参数均是元素、索引值、原数组
② 不同之处在于map中会将回调的返回值放入到新数组中
实现:
3. reduce
用法:
分析:
① 有两个参数:回调以及初始值
② 回调中传入的参数为prev:上次返回的值、current:当前元素、i:索引值、arr:原数组
③ 最终返回值为最后一次执行回调的值
④ 重点:需要判断是否有初始值来传入回调的值:
(1)有初始值:prev为初始值,current为数组第一个元素,i为0
(2)无初始值:prev为第一个元素、current为第二个元素、i为1
实现:
不足之处麻烦点出,谢谢!