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