reduce()?方法對數(shù)組中的每個元素執(zhí)行一個由您提供的reducer函數(shù)(升序執(zhí)行)法褥,將其結果匯總為單個返回值。
reducer?函數(shù)接收4個參數(shù):
1.Accumulator (acc) (累計器)
2.Current Value (cur) (當前值)
3.Current Index (idx) (當前索引)
4.Source Array (src) (源數(shù)組)
語法:
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue]);
回調(diào)函數(shù)第一次執(zhí)行時,accumulator?和currentValue的取值有兩種情況:如果調(diào)用reduce()時提供了initialValue,accumulator取值為initialValue惰蜜,currentValue取數(shù)組中的第一個值;如果沒有提供?initialValue掐暮,那么accumulator取數(shù)組中的第一個值蝎抽,currentValue取數(shù)組中的第二個值。
如果數(shù)組為空且沒有提供initialValue路克,會拋出TypeError?樟结。如果數(shù)組僅有一個元素(無論位置如何)并且沒有提供initialValue, 或者有提供initialValue但是數(shù)組為空精算,那么此唯一值將被返回并且callback不會被執(zhí)行瓢宦。