讲解了 reduce 基础使用方法和场景的运用场景。本篇来分析一下 reduce
函数本身的实现原理。
实现 reduce 其实挺简单的,因为它本身的运行原理也不难,就是把数组进行遍历,然后组成合适的参数传递给回调函数,只要思路对了,去尝试几次,那么就理解了 reduce 。
最具有代表性的工具库当然是 lodash,因此本篇文章的主要内容会讲解 reduce 的基本实现,以及lodash 中是怎么来实现的,做了什么处理。
基本实现
实现思路:
- 判断是否有初始值,因为有初始值和没有初始值对回调函数(reducer)执行的次数是有影响的。
- 遍历数组
- 组合参数传递给 reducer 进行执行
- 获取到第三步返回值的时候,要把返回值存储起来,在下一次便利的时候作为reducer第一个参数来替换初始值。
- 返回最终计算的value值
1 2 3 4 5 6 7 8 9 10 |
|
测试一下:
1 2 |
|