搜索
写经验 领红包
 > 地理

educe实现数组求和(数组educe用法)

导语:reduce更适合数组项求和,分析一下原因

上一篇,我们用实例的方式详细阐述了reduce和reduceRight的使用。这一篇我们将以reduce为例来分析和对比一下与常用循环处理数组的方式(for、while)的优势在哪?

就如古人选媳妇是一个逻辑,当长相无法决定你的选择的时候,你会以才华来区分哪个更好,当常用的for和while循环能帮你处理好数组数据叠加问题时, 为什么还要花时间去弄懂和学会Reduce呢?

所以这里我们从运行效率上来分析一下,两者有何不同。

一、先来创建一个简单的数组:

var arry = [1,2,3,4,5,6]

这个数组包括六个数据,如上面代码所示,下我们分别用for和reduce两种方式来对这个数组进行数据叠加。

二、for循环:

有关for循环的代码我直接贴个图吧

上面代码图可以看出,我对这个处理数据叠加的代码运行了10000次,到最后打印出了一个时间,如下图

最终输出值是21,运行所耗的时间是2.23ms。这时间长吗?还是短?下面看一下reduce的运行结果

三、reduce:

同样我将reduce的代码图贴出来

可以看出,我们同样将reduce处理数据叠加的代码运行了10000次。在同样一个对方看一下运行结果。

这样看来,最终的值是相同的21,所消耗的时间差不多减少了10多倍。也许这就是我们弃循环而用Redux来处理数组数据叠加的原因所在吧。

四、写到最好的总结:

很多东西,之所以造出来,就是针对某些使用场景而来的。所以一个方法找到它的真正使用场景,这点很重要。通过近两篇我们知道了Reduce和ReduceRight的使用及相较通常使用的循环,它们更适合用来对数组项求和,因为它们所费时间是最短的。

短内容,说完整事,哪怕只读一篇也能学知识。点击关注小郑搞码事,说的都是那堆代码。谢谢您的鼓励!

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小涵创作整理编辑!