8个JS的reduce使用实例和reduce操作方式
发布日期:2025-01-03 18:03 点击次数:114
reduce方法是一个数组的迭代方法,和map、filter不同,reduce方法可缓存一个变量,迭代时我们可以操作这个变量,然后返回它。
这是我大白话的解释,可能还是不容易理解,下面看例子吧
1. 数组累加
数组累加是项目经常遇到的,比如计算商品总价等,使用reduce就可以一行代码搞定,而且不用定义外部变量,reduce是完全无副作用的函数。
2. 找出数组最大值
在数组每次的迭代中,我们使用Math.max获取最大值并返回,最后我们将得到数组所有项目的最大值。
当然如果数组每项都是数字我们可以使用...展开运算符和Math.max配合。
3. 处理不规则数组
通过map和reduce配合使用,返回每个子数组拼接好的结果。
4. 删除数据重复项
检查当前迭代项是否存在,如果不存在添加到数组中。
5. 验证括号是否合法
这是一个很巧妙的用法,我在dev.to上看到的用法。如果结果等于0说明,括号数量是合法的。
6. 按属性分组
按照指定key将数据进行分组,这里我用国家字段分组,在每次迭代过程中检查当前国家是否存在,如果不存在创建一个数组,将数据插入到数组中。并返回数组。
7. 数组扁平化
这里展示的数组只有一级深度,如果数组是多级可以使用递归来进行处理
当然也可以使用ES6的.flat方法替代
8. 反转字符串
这也是一种很奇妙的实现方法
或者