兼容性来说: 活宝系列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
网友评论