通過六個(gè)場(chǎng)景,告訴你 reduce 方法有多么強(qiáng)大!
都 2025 了,還有很多人都不知道 reduce 這個(gè)方法到底有什么用,或者說應(yīng)該在什么場(chǎng)景下去使用。
reduce 是一個(gè)非常實(shí)用的數(shù)組方法。
reduce() 方法對(duì)數(shù)組中的每個(gè)元素按序執(zhí)行一個(gè)提供的 reducer 函數(shù),每一次運(yùn)行 reducer 會(huì)將先前元素的計(jì)算結(jié)果作為參數(shù)傳入,最后將其結(jié)果匯總為單個(gè)返回值。
第一次執(zhí)行回調(diào)函數(shù)時(shí),不存在“上一次的計(jì)算結(jié)果”。如果需要回調(diào)函數(shù)從數(shù)組索引為 0 的元素開始執(zhí)行,則需要傳遞初始值。否則,數(shù)組索引為 0 的元素將被用作初始值,迭代器將從第二個(gè)元素開始執(zhí)行(即從索引為 1 而不是 0 的位置開始)。
接下來通過幾個(gè)場(chǎng)景給大家講一下 reduce 的使用場(chǎng)景。
數(shù)字的求和
如果你想要對(duì)一堆數(shù)字進(jìn)行求和計(jì)算,那么 reduce 是不二之選!
圖片
數(shù)組扁平化
如果你想要對(duì)一個(gè)數(shù)組進(jìn)行扁平化,也可以選擇 reduce 來完成。
圖片
根據(jù)屬性去分類對(duì)象
比如有一個(gè)對(duì)象數(shù)組,你想要根據(jù)每個(gè)對(duì)象的某一個(gè)屬性,去對(duì)這些對(duì)象進(jìn)行分組,就可以使用 reduce 來完成。
圖片
對(duì)象數(shù)組生成映射關(guān)系
比如有一個(gè)對(duì)象數(shù)組,我想要根據(jù)每一個(gè)對(duì)象的 id 去生成映射關(guān)系,方便后面根據(jù) id 去匹配,就可以使用 reduce 來完成。
圖片
統(tǒng)計(jì)元素出現(xiàn)次數(shù)
你想要統(tǒng)計(jì)一個(gè)數(shù)組中各個(gè)元素出現(xiàn)的次數(shù),就可以使用 reduce 來完成。
圖片
計(jì)算平均值
計(jì)算一個(gè)數(shù)字?jǐn)?shù)組的平均值。
















 
 
 












 
 
 
 