主页

Array reduce 的使用

2024-06-15 09:50AM

参考:https://www.liaoxuefeng.com/wiki/1022910821149312/1024322552460832

reduce() 是 JavaScript 数组中的一个方法,它可以对数组中的元素进行迭代和累积,从而产生一个单一的值,这个过程在需要对数组进行一些聚合操作时非常有用,比如求和、求积、查找最大/最小值等。

语法:

arr.reduce(callback, initialValue)

1)callback 是一个函数,它接受以下四个参数:

2)accumulator: 累积器,用于存储每次回调函数的返回值

3)currentValue: 当前正在处理的数组元素

4)currentIndex: 当前元素的索引(可选)

5)array: 原数组(可选)

6)initialValue: 作为第一次调用 callback 函数时的 accumulator 的值(可选)

Array中的reduce()是把一个函数作用在这个Array的[x1, x2, x3……]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算。

eg:

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)

reduce() 方法的作用是将数组中的元素从左到右依次应用给一个累积器函数 f,最终得到一个单一的值。

1)f(x1, x2) 将数组的前两个元素 x1x2 传递给函数 f,得到一个中间结果。

2)然后 f(f(x1, x2), x3) 将上一步的中间结果和数组的第三个元素 x3 传递给函数 f,得到另一个中间结果。

3)最后 f(f(f(x1, x2), x3), x4) 将上一步的中间结果和数组的第四个元素 x4 传递给函数 f,得到最终的结果。

例如:对一个Array求和,就可以用reduce实现:

var arr = [1, 3, 5, 7, 9];

arr.reduce(function (x, y) {

  return x + y;

});

// 返回25

如果数组元素只有1个,那么还需要提供一个额外的初始参数以便至少凑够两个参数:

var arr = [123];

arr.reduce(function (x, y) {

   return x + y;

}, 0);

// 返回  123

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论