📅  最后修改于: 2023-12-03 14:42:26.761000             🧑  作者: Mango
reduce()
是一种使用一个累积器和当前值将数组元素 "规约" 到一个值的方法。它在函数式编程中非常有用,并可以用于处理数组中的元素来生成最终结果。以下是 reduce()
的用法示例:
array.reduce(callback[, initialValue]);
callback
函数接受四个参数:
initialValue
是最初的累加器值。如果未提供 initialValue
,则 reduce()
会将索引从 1 开始,将第一个元素作为初始累加器值。
以下是一个示例,将数字数组中的元素相加:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, cur) => acc + cur);
console.log(sum); // 15
以上代码中,我们定义了一个数字数组 numbers
,然后使用 reduce()
方法将数组所有元素相加。我们定义了一个 callback
函数,该函数接受两个参数 acc
和 cur
,并将它们相加。
以下是另一个示例,求数组中数字的平均值:
const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce((acc, cur, idx, src) => {
acc += cur;
if (idx === src.length - 1) {
return acc / src.length;
} else {
return acc;
}
}, 0);
console.log(average); // 3
以上代码中,我们使用 reduce()
方法计算了数组的平均值。在 callback
函数中,我们将每个元素数量添加到累加器上。当我们到达数组的最后一个元素时,我们将累加器值除以数组长度并返回最终平均值。
总结:reduce()
方法可以用于将数组元素 "规约" 到单个值。它可以用于计算数组中数字的总和,平均值等等。在使用 reduce()
时,请确保理解 callback
函数参数,因为它们对最终结果产生重大影响。