js中数组Array.reduce方法介绍及使用场景

时间:2022-07-22
本文章向大家介绍js中数组Array.reduce方法介绍及使用场景,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1 作用

reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。这样说可能不好理解,下面来看下语法以及如何使用

2 语法

arr.reduce((accumulator, currentValue, index, array)=>{ } , init)

第一个参数是一个回调函数 有四个参数

accumulator 表示上一次调用回调时的返回值,或者初始值 init 最后成为最终的单个结果值

currentValue 表示当前正在处理的数组元素

index  表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1

array 表示调用reduce()的数组

第二个参数

init 作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。如果没传递初始值数组就会从索引1开始 有初始值就从0开始 callback 的第一个参数就是初始值 在没有初始值的空数组上调用 reduce 将报错。

解析各个参数

(1) 不传init初始值时 下面的代码 没有传递init初始值 currentIndex 索引默认从1 开始

(2)传递init初始值时 各个参数的打印情况

3 使用场景

介绍完基本的使用后 现在下面是使用场景 从易到难

(1) 求数组项之和

(2) 求数组最大值

(3) 数组去重

(4) 求字符串中字母出现的次数

(5) 二维数组降维

(6) 多维数组降维