都 2025 了,还有很多人都不知道 reduce 这个方法到底有什么用,或者说应该在什么场景下去使用。
reduce 是一个非常实用的数组方法。
reduce() 方法对数组中的每个元素按序执行一个提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
第一次执行回调函数时,不存在“上一次的计算结果”。如果需要回调函数从数组索引为 0 的元素开始执行,则需要传递初始值。否则,数组索引为 0 的元素将被用作初始值,迭代器将从第二个元素开始执行(即从索引为 1 而不是 0 的位置开始)。
接下来通过几个场景给大家讲一下 reduce 的使用场景。
数字的求和
如果你想要对一堆数字进行求和计算,那么 reduce 是不二之选!
图片
数组扁平化
如果你想要对一个数组进行扁平化,也可以选择 reduce 来完成。
图片
根据属性去分类对象
比如有一个对象数组,你想要根据每个对象的某一个属性,去对这些对象进行分组,就可以使用 reduce 来完成。
图片
对象数组生成映射关系
比如有一个对象数组,我想要根据每一个对象的 id 去生成映射关系,方便后面根据 id 去匹配,就可以使用 reduce 来完成。
图片
统计元素出现次数
你想要统计一个数组中各个元素出现的次数,就可以使用 reduce 来完成。
图片
计算平均值
计算一个数字数组的平均值。