![df24c1df9b5dce0744fde526b463b11c.png](https://i-blog.csdnimg.cn/blog_migrate/a9066dc1b1535cc1c9903dfcef5ba511.jpeg)
数组中reduce()函数与过滤filter()和映射map()有什么区别?
先来看看reduce()这个函数,废话不多说,直接上代码
![436fea7dee9a3210185c6e2c7ed1c996.png](https://i-blog.csdnimg.cn/blog_migrate/a06bf3dda6951e903a12d88e65bb8c98.jpeg)
![b2162fb1e11a1ddf9a32ad4954dd4d65.png](https://i-blog.csdnimg.cn/blog_migrate/7bdb210371c2516a77a257848a8003d1.jpeg)
在这里,你很好奇为什么是11,让我们来看下,首先reduce()这个方法里装的依旧是个函数,但是还有第二个参数,作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。
![c463bf185b1904146cb2e7f481a8e382.png](https://i-blog.csdnimg.cn/blog_migrate/9f45afbfaf12711548076e1155ed6044.jpeg)
那么(acc,cur,idx,src)什么鬼
- 第一个参数:初始值,或者计算后返回的值
- 第二个参数:就是当前的元素嘛
- 第三个元素:就是当前元素的索引
- 第四个元素:数组
再来欣赏下filter()
![0f1ad0bdb15aabecb87991baef300964.png](https://i-blog.csdnimg.cn/blog_migrate/96f2cd53c2fc11fd08b542b55acbfca1.jpeg)
不难发现
- 第一个参数:就是数组中的每个元素
- 第二个参数:索引嘛
- 第三个参数:就是数组
那么我们实际过滤一下,
![cabf010529e902e2070b38e99e37e374.png](https://i-blog.csdnimg.cn/blog_migrate/2f51250ce1f7d2405679938193957332.jpeg)
显然,大于4的没有 返回返回的是空的数组
最后map()
![e2b61c23f8f5ea348a92e3394db0fbeb.png](https://i-blog.csdnimg.cn/blog_migrate/89a134ce9ac2c7edfe56b35941d781b2.jpeg)
还是同样的道理
- 参数一:循环的时候,当前的数组元素
- 参数二:就是元素
- 参数三:数组
![284070e8673d7d28f1bbe26d3a0e1131.png](https://i-blog.csdnimg.cn/blog_migrate/46060176dcf724b7911e698cba25fa68.jpeg)
作者:洋小洋同学来源:思否商业用途请与原作者联系,本文只做展示分享,不妥侵删!