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


