【JavaScript 高阶函数之reduce() 】

reduce() 函数的基本概念

reduce() 函数的基本语法如下:

array.reduce(callback, initialValue);
  • array:想要迭代的数组。
  • callback:一个回调函数,用来处理数组中的每个元素。这个函数可以接受四个参数:累积值(accumulator),当前元素(currentValue),当前索引(currentIndex),以及数组本身(array)。
  • initialValue(可选):作为第一次调用回调函数时的累积值。如果不提供此参数,reduce() 将使用数组的第一个元素作为初始累积值,并从第二个元素开始迭代。

计算数组元素的总和

有一个数字数组,计算所有元素的总和。

const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
}, 0);

console.log(sum); // 输出:15

在这个例子中,我们使用 reduce() 函数来累积数组中的元素。初始累积值 0 作为 reduce() 函数的第二个参数传递进去。然后,回调函数按顺序处理数组的每个元素,将当前元素的值加到累积值上。最终得到了数组元素的总和。

对象属性求和

使用 reduce() 来计算一个对象数组中特定属性的总和。

const expenses = [
  { id: 1, amount: 100 },
  { id: 2, amount: 200 },
  { id: 3, amount: 50 },
];

const totalExpense = expenses.reduce((accumulator, expense) => {
  return accumulator + expense.amount;
}, 0);

console.log(totalExpense); // 输出:350

在这个示例中,我们使用 reduce() 函数来计算 expenses 数组中每个对象的 amount 属性的总和。回调函数访问每个对象的 amount 属性,并将其加到累积值上。

处理空数组

如果在一个空数组上使用 reduce() 函数并且没有提供初始累积值,会导致错误。为了防止这种情况,最好始终提供一个初始累积值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武帝为此

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值