JS中reduce的用法详解,以及使用场景

前言

reduce方法为归并类方法。在数组的每个元素上执行用户提供的回调函数。它传入对前一个元素进行计算的返回值。结果是单个值。它是在数组的所有元素上运行回调函数的结果。

reduce方法使用的场景特别多,循环遍历能做的,reduce都可以做,比如数组求和、数组求积。、从数组中获取对象、数组中元素出现的次数、数组去重等等。

语法

arr.reduce(function(prev,cur,index,arr){
...
}, init);

参数

prev 必需。累计器累计回调的返回值; 表示上一次调用回调时的返回值,或者初始值 init;
cur 必需。表示当前正在处理的数组元素;
index 可选。表示当前正在处理的数组元素的索引,若提供 init 值,则起始索引为- 0,否则起始索引为1;
arr 可选。表示原数组;
init 可选。表示初始值。

举例

1、没有设置函数的初始值init

const arr = [1,2,3,4,5];
const sum = arr.reduce(function(prev,cur,index,arr){
    console.log(prev,cur,index);
    return prev + cur;
});
console.log('arr:',arr,'sum:',sum);

运行结果:

 上面的这段代码,是用来计算数组总和的,迭代了4次。reduce()方法中,没有传入初始值参数init,所以,函数迭代的初始值是1,也就是默认值(数组的第一项参数prev的值),而cur的值为数组的第二项,第一次迭代会返回return 1+2,第二次迭代方法中prev的值,是第一次迭代方法返回的结果,也就是说prev的值是每次计算后的值。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值