数组之reduce求和方法的使用

@1 数组reduce方法的使用:
        const arr = [1,2,3,4,5] 
        reduce可以接受两个参数,先来看只有一个函数参数是如何执行的
        const total = arr.reduce((res,item,index)=>{
                第一次循环 res=1 item = 2 index = 1  返回的结果为3
                第二次循环 res=3(上一次迭代返回的结果) item = 3 index = 2 返回的结果为6
                第三次循环 res=6 item = 4 index = 3 返回的结果为10
                第四次循环 res=10 item = 5 index = 4 返回的结果为15
                 return res+item
        })
        得到的结果为15 ;
        reduce接受第二个参数:第一个参数为函数,第二个参数为累计的起始值;
        const total = arr.reduce((res,item,index)=>{
                第一次循环 res=0 item = 1 index = 0  返回的结果为1
                第二次循环 res=1(上一次迭代返回的结果) item = 2 index = 1 返回的结果为3
                第三次循环 res=3 item = 3 index = 2 返回的结果为6
                ...... 以此类推
                 return res+item
        },0)
        得到的结果依然为15

@2 再来看下数组求和的其他方法吧:
        let total = 0
        arr.forEach(item=>{ 
                total+=item
        })
        console.log(total)
        、、、、、、、、、、、、、、、、、、、、

        arr.join('+') // '1+2+3+4+5'
        eval('1+2+3+4+5') // 15
        console.log(eval(arr.join(‘+’)))


@3 利用reduce求和;
        封装函数:
        function fn(...arguments){
                return  function (...ags){
                        return arguments.concat(ags).reduce(res,item=>res+item)
                }
        }
        代码简写:const fn =(...arguments)=>(...ags)=>arguments.concat(ags).reduce(...)
        const res = fn(1,2,3)(4)  // 结果为 10

        

        
        
        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值