JavaScript实现数组的reduce方法

一、什么是数组的reduce方法?

语法:

arr.reduce(callback,initValue)

reduce 为数组中的每一个元素依次执行回调函数callback,callback接收四个参数值

callback(pre,cur,index,arr)

pre:上一次调用返回的值,或者提供的初始值

cur:数组中当前处理的元素

index:数组中当前处理的元素的下标

arr:调用reduce函数的数组

下面通过一个例子具体说明:

 

执行程序后浏览器输出 

 

从这里可以看出,

如果reduce函数没有传初始值,

那么prev初始值为数组的第一个元素,数组长度是5,renduce函数循环了4次,cur是数组的第二个元素,index的下标是从1开始的, 

如果reduce函数传了初始值

执行程序浏览器输出:

 

那么prev初始值为传入的初始值initValue,数组长度是5,renduce函数循环了5次,cur是数组的第1个元素,index的下标是从0开始的, 

二、如何自己实现一个数组的reduceTo方法,让它和原生的数组的reduce方法效果一致呢?

思路:

(1)在数组原型上要有reduceTo方法;

(2)reduceTo方法要接收一个回调函数callback,和一个初始值作为参数

(3)callback接收的参数要和原生reduce方法一样接收4个参数,并实现reduce的相关逻辑

 

 

对比数组原生的reduce方法,输出一样,说明reduceTo方法封装成功 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值