关于reduce

ぃ、小莉子 提交于 2019-11-28 15:18:37
 arr.reduce( callback,[initialValue]) reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素
callback (执行数组中每个值的函数,包含四个参数)
    1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
    2、currentValue (数组中当前被处理的元素)
    3、index (当前元素在数组中的索引)
    4、array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。)如果没有提供initialValue,reduce 会从索引1的地方开始执行例如下面两串代码
var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
    console.log(prev, cur, index);
    return prev + cur;
})
console.log(arr, sum);打印结果:1 2 13 3 26 4 3[1, 2, 3, 4] 10
var  arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
    console.log(prev, cur, index);
    return prev + cur;
},0) //注意这里设置了初始值
console.log(arr, sum);打印结果:0 1 01 2 13 3 26 4 3[1, 2, 3, 4] 10没有设置initialValueed的值得话便是从index等于1开始执行,比设置初始值为0的少执行一次
reduce的简单用法求和与乘积
var  arr = [1, 2, 3, 4];
var sum = arr.reduce((x,y)=>x+y)
var mul = arr.reduce((x,y)=>x*y)
console.log( sum ); //求和,10
console.log( mul ); //求乘积,24reduce的高级用法:数组去重,二维数组转化成一维,对象里的属性求和等我理解透彻再补充…………

 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!