reduce的使用 (完整版)

作用:reduce方法es6新增方法,通常被作用域累加器,但其实reduce其实不至于此

语法:

Array.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

数组.reduce(function(累加器,遍历元素,[索引[, 参与循环的数组]])[, 起始要参与运算的参数])

参数:

callback:执行数组中每个值 (如果没有提供 initialValue则第一个值除外)的函数,包含四个参数:
-----accumulator:累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue(见于下方)。
-----currentValue:数组中正在处理的元素。
-----index可选 数组中正在处理的当前元素的索引。 如果提供了initialValue,则起始索引号为0,否则从索引1起始。
-----array可选 调用reduce()的数组
initialValue: 可选 作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。(第一次循环的值).

1.当累加器使用

//数组.reduce(函数体(积累的返回值, 正在处理的元素[, 索引[,正在处理的数组]])[, 循环开始的起始值])
let a = [1, 2, 3, 4, 5]
let b = a.reduce(function(accumulator,currentValue,index,array){
    console.log(index);// 索引号
    console.log(array);// [1, 2, 3, 4, 5]
    return accumulator+=currentValue
},5)//敲黑板这个0   是开始那个和索引为1相加  默认不给就是1+2+3+4+5  给5就是5+1+2+3+4+5   给6就是6+1+2+3+4+5
console.log(a);//a: [1, 2, 3, 4, 5]
console.log(b);//b: 20

2.计算一个数据里重复的元素次数

let arr = ["a", "b", "c", "b", "z", "a", "c", "b", "d", "c", "x", "b", "z", "c", "z", "x", "c", "b", "a"]
const obj = arr.reduce((sum,item)=>{
     sum[item] ? sum[item]++ : sum[item] = 1
     return sum
},{})
console.log(obj);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值