reduce方法详解

reduce方法详解

reduce(callback,init);
这个init为初始项,如果没有默认为数组的第一项,这个项是可选的

reduce方法会遍历数组,使用回调函数遍历处理数组中的每一项,回调函数每次会返回一个处理后的值,作为下一次回调的第一个参数。

function(prev,cur,index,arr);

prev:上一次回调的处理结果

cur:本次遍历的数组项

index:当前遍历的索引

arr:对应的是数组本身

实际应用:

1.进行数组项求和

    var arr = [1,2,3,4,5];      
    var res = arr.reduce((prev,val)=>(prev + val));
    console.log("arr:",arr);
    console.log("res:",res);
    //输出
    //arr: (5) [1, 2, 3, 4, 5]
    //res: 15

2.添加初始值求和

var arr = [1,2,3,4,5];      
var res = 
arr.reduce(
(prev,val,index)=>{ 
console.log(index); 
return (prev + val);
},100);
console.log("arr:",arr);
console.log("res:",res);
//输出
//0
//1
//2
//3
//4
//arr: (5) [1, 2, 3, 4, 5]
//res: 115

注意:空数组使用reduce方法时,必须传入initval值,否则会报错

[].reduce((prev,cur)=>prev+cur);
//输出:
//VM287:1 Uncaught TypeError: Reduce of empty array with no initial 
value  at Array.reduce (<anonymous>)

加一个初始值就好了

[].reduce((prev,cur)=>prev+cur,0);
//输出:0

所以如果你不确定调用reduce方法的数组是不是空数组时,还是加一个初始值比较靠谱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值