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)
将数组的前两个元素 x1
和 x2
传递给函数 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
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论