搜索
写经验 领红包
 > 职场

数组处理方法(处理数组中的数据适合使用哪种结构编程)

导语:数组处理可以这么搞,使用过吗?

在ES5中新增了很多有关写数组的方法。有forEach、map、filter等。其中有两个很少用到,就是reduce和reduceRight。今天我来总结一下它们的使用。及下一下篇总结一下为什么这两法值得去使用。而且在今后讲其它内容的时候我们也会使用到这两个方法。

上面是引言下面才是正题:

一、reduce()方法:

array.reduce(callbackfn,[initialValue])

reduce()方法接收一个函数callbackfn作为累加器,数组中的每个值(从左到右)开始合并,最终返回一个值。

callbackfn包括四个参数:

function callbackfn(preValue,curValue,index,array){}

preValue:上一次调用回调返回的值,或者是提供的初始值(initialValue),如果没有初始值那就是数组中的第一个值。

curValue:数组中当前被处理的数据项(如果preValue为数组中第一个值,那么curValue就是第二个值)。

index:当前数组项在数组中的索引值。

array:调用reduce()方法的数组。

举个例子:

上面是代码,下面看一下运行后结果:

然后,假定给他传一个初始值5:像下面这样

arr.reduce(function(){},5)

运行结果是这样的:

由此可以看出,当初始值改成5之后,preValue的第一个取值就变成了5。

二、reduceRight()方法:

这个方法的功能和reduce()功能是一样的,不同的是reduceRight()从数组的末尾向前将数组中的数组项做累加。

同样用上面那个例子,将reduce改成reduceRight,是这样的:

运行结果是这样的:

可以看到,当前值是最后一个4。然而,我们下面同样给它传一个初始值。

arr.reduce(function(){},5)

运行结果是这样的:

初始值就变成了6。

最后总结:

有关于reduce和reduceRight通过这一篇我们知道了它们的使用,然后了,就只剩下一个问题,相比其它处理数组的方法,这两方法为什么值得我们去使用了。下一篇将从执行效率上来看。

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

本文内容由小琪整理编辑!