reduce可以让我们给定一个初始值,用它与集合中的每一个元素做运算,最后得到一个值。reduce从左向右来遍历元素,如果想从右向左,可使用reduceRight。
reduce(arr, memo, iterator(memo,item,callback), callback(err,result))
//alias: inject, foldl
//其中memo为reduce的初始值
测试数据:
![](https://img.haomeiwen.com/i617881/8bdaf125e83d8bdd.png)
reduce
代码:
![](https://img.haomeiwen.com/i617881/7d2f55ee79ff7287.png)
结果:
![](https://img.haomeiwen.com/i617881/971903e9db826cda.png)
如果出错:
代码:
![](https://img.haomeiwen.com/i617881/76e0cc179b528e98.png)
结果:
![](https://img.haomeiwen.com/i617881/cb68a8ab3468e280.png)
reduceRight
代码:
![](https://img.haomeiwen.com/i617881/f703c16f2c047500.png)
结果:
![](https://img.haomeiwen.com/i617881/a6cd672ca85155aa.png)
额外的例子:
ex1代码:
![](https://img.haomeiwen.com/i617881/3de281ca4356738a.png)
结果:
![](https://img.haomeiwen.com/i617881/c892f6a008e4d923.png)
花费时间:644ms
ex2代码:
![](https://img.haomeiwen.com/i617881/58478fae78c5ffc3.png)
结果:
![](https://img.haomeiwen.com/i617881/3d767233ee21059a.png)
花费时间:225ms
网友评论