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
