数组方法reduce总结

兼容性来说: 活宝系列IE9以上可以支持,其他的就不赘述了,反正也只是用来做日记的.

reduce主要是对数组进行遍历,累计,变形的方法;

基本用法:

let arr = [1,2,3,4,5];

let sum = arr.reduce(p1,p2);

function p1(a,b,c,d){

    //逻辑

}

参数一是一个回调函数,依次有四个参数:

a. 是前一个量,其实简单来说就是上一次循环结束return的值,如果是第一个循环,那么就会判断,p2不为空,那么p2就会作为第一个次的a参与回调函数p1的执行;如果p2为空,那么就会判断数组arr是否是空,如果不为空,那么就会把arr的第一个元素作为a传入,作为实参参与运算;

b. 是当前元素,就是arr的第几个元素,等同于forEach的回调里的v

c. 是当前的索引

d. 是调用reduce方法的数组本身

需要注意的是如果要在下一个循环中使用a,那么就需要return一个值.

阮一峰的文章传送门:阮一峰reduce和Transduce

另一篇,也是比较详细的

你可能感兴趣的:(数组方法reduce总结)