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的使用及相较通常使用的循环,它们更适合用来对数组项求和,因为它们所费时间是最短的。
短内容,说完整事,哪怕只读一篇也能学知识。点击关注小郑搞码事,说的都是那堆代码。谢谢您的鼓励!
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小涵创作整理编辑!