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