JS中的reduce()详解

reduce()作为一个循环使用。接收四个参数:初始值(上一次返回值),当前元素值,当前元素下标,原数组。

应用  作为累加器使用

  
var a=[4,5,6,7,8]
//item代表一次回调的值 初始值为0
//cart代表当前元素的值
//index当前下标
//arr原数组
var num=a.reduce((item,cart,index,arr)=>{
    return item+=cart
},0)
//初始值为0
console.log(num)
//输出为30
  
以上结果回调被调用用5次分别是
name item cart index arr Output
第一次 0 4 0
[4,5,6,7,8]
4
第二次 4 5 1
[4,5,6,7,8]
9
第三次 10 6 2
[4,5,6,7,8]
15
第四次 15 7 3
[4,5,6,7,8]
22
第五次 22 8 4
[4,5,6,7,8]
30
 
还可以利用reduce来计算一个字符串中每个字母出现次数
 
        var str = 'asfadewqqfh';
        var obj = str.split('').reduce((item,cart) => {
            //三元运算符
            item[cart] ? item[cart] ++ : item[cart] = 1
            return item
        },{})
        console.log(obj)//以上结果输出为a: 2 d: 1 e: 1 f: 2 h: 1 q: 2 s: 1 w: 1    
  
原文地址:https://www.cnblogs.com/dcyd/p/12341885.html