js中数组迭代归并方法的原理及实现

JavaScript034

js中数组迭代归并方法的原理及实现,第1张

数组的迭代方法,每个方法都会接受两个参数:(1)要在每一项上运行的函数(2)运行该函数的作用域——影响this的值(可选)。传入方法中的函数会接受三个参数:(1)数组每项的值(2)该项在数组中的位置(3)数组对象本身。

5种迭代方法的作用如下:

数组还有两个归并的方法:reduce和reduceRight。这两个方法会迭代数组的所有项,最终返回一个迭代的最后值。reduce方法从数组的第一项开始迭代,reduceRight则从数组的最后一项开始。两个方法接受参数相同,都是两个参数:一个是在在每项上调用的函数以及迭代的初始值(可选)。下面,我们对reduce方法的实现进行详解。

ES6规范中Set数据结构,类似于数组,但其中的值全都是唯一的。搭配数组的迭代方法,我们能够快速方便地实现两个或多个数组的交、并、差集。

MDN web docs

ECMAScript 6入门

reduce(),reduceRight()。

迭代i数组中的所有值,返回一个按条件计算的最终值。

reduce是从数组的逐个遍历

到最后。而reduceRight()则从数组的最后一项开始,向前遍历到第一项。

例如:

var values = [1,2,3,4,5]

var sum = values.reduce(function(prev, cur, index, array){

return prev + cur

})

alert(sum)//15

第一次执行回调函数,prev 是1,cur 是2。第二次,prev 是3(1 加2 的结果),cur 是3(数组

的第三项)。这个过程会持续到把数组中的每一项都访问一遍,最后返回结果。

resuceRight()函数和reduce类似,不过是倒序。