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    

 

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM