JavaScript -- arr.reduce()方法的理解与应用

简介
  1. reduce()接受一个函数作为累加器,从数组第一个值开始缩减,直到最后一个值缩减完成。最终计算为一个值
  2. reduce()可做为高阶函数,用于函数的,compose
  3. reduce()无法调用空数组,会报错。
语法:

array.reduce( function (total, currentValue, currentIndex, arr), initialValue)

arr.reduce (function ,initialValue)function (total, currentValue, currentIndex, arr)
fun: 回调函数total: 初始值initialValue,或fun的返回值
initialValue: 传递函数初始值currentValue:当前值
.currentIndex:当前我的索引
.arr:要累加的arr非空数组

要注意的是当 initialValue 的值为空的,也就是没有初始值时,函数第一次累加的 total 将会是 arr 的第一个元素,currentindex 的值为 1,

简单例子:

Exp1

累加应用

let arr2 = [1,2,3,4,5,6,7,8,9,10]
let allsum = arr2.reduce((sum,currentValue)=>{
    return sum += currentValue
},100)
console.log(allsum)//155

Exp2

将string1分割为数组[a,b,c,d],用reduce拼接到newStr中,得到的结果 0abcd;

let string = 'a-b-c-d'
let arr = string.split('-')//[a,b,c,d] 
let newStr = '0'

function getString(all, currentValue, currentIndex, arr) { 
    console.log(all, currentValue, currentIndex)
    return all += currentValue
}
let value = arr.reduce(getString,newStr) 
console.log(value) // 0abcd 
 
getString部分运行结果: 被调用四次
0 a 0 
0a b 1 
0ab c 2 
0abc d 3

最终value打印: 
0abcd

要注意的是,如果没有初始值 newStr,运行结果如

getString部分运行结果:  被调用三次
a b 1 //第一次循环将arr的第一个元素作为初始值,当前索引为1
ab c 2 
abc d 3

最终value打印: 
abcd
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值