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