reduce()方法接收一個函數作為累加器,reduce為數組中的每一個元素依次執行回調函數,接收四個參數:初始值(上一次回調返回的值),當前元素,當前索引,原數組。
語法:reduce(callback, [initialValue]
callbck包含四個參數:
- previousvalue:上一次回調函數的返回值,或者提供的初始值(initialValue)
- currentValue: 數組中當前被處理的元素
- index: 當前索引
- array: 原數組
需要注意的是:當提供了初始值initialValue,則第一次執行回調函數時previousvalue就是initialValue,則currentValue是數組第一項,如果沒有提供初始值,則previousvalue是數組第一項,currentValue是數組第二項。
使用reduce方法可以完成多維度的數據疊加
利用reduce來計算一個字符串中每個字母出現次數:
const str = 'jshdjsihh'; const obj = str.split('').reduce((pre,item) => { pre[item] ? pre[item] ++ : pre[item] = 1 return pre },{}) console.log(obj) // {j: 2, s: 2, h: 3, d: 1, i: 1}
