📜  js reduce - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:59.133000             🧑  作者: Mango

JavaScript中的reduce方法

在JavaScript中,reduce()是一个非常实用的数组方法。它允许您对数组中的每个元素进行累积操作,最终返回一个单一的值。

语法
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
  • total:必需。初始值,或者上一次折叠的结果。
  • currentValue:必需。当前元素的值。
  • currentIndex:可选。当前元素的索引。
  • arr:可选。当前元素所属的数组对象。
  • initialValue:可选。传入reduce的第一个参数的值。如果没有提供,则使用数组中的第一个元素。
使用reduce方法求和
const nums = [1, 2, 3, 4, 5];

const sum = nums.reduce((total, current) => {
  return total + current;
}, 0);

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

在以上的示例中,reduce()方法的初始值为0,返回了所有元素的总和。

使用reduce方法进行数组去重
const arr = [1, 2, 2, 3, 4, 4, 5];

const uniqueArr = arr.reduce((prev, cur) => {
  if (prev.includes(cur)) {
    return prev;
  } else {
    return [...prev, cur];
  }
}, []);

console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5]

在以上的示例中,通过reduce()方法找到了数组中所有唯一的元素。

使用reduce方法实现复杂计算
const sales = [
  { item: '手机', price: 3000, quantity: 2 },
  { item: '电脑', price: 5000, quantity: 1 },
  { item: '平板', price: 2000, quantity: 3 },
];

const totalSales = sales.reduce((total, sale) => {
  return total + sale.price * sale.quantity;
}, 0);

console.log(totalSales); // 输出:16000

在以上的示例中,通过reduce()方法计算了所有销售额的总和。

总结

reduce()方法是JavaScript中非常强大的数组方法之一。它可以帮助您完成各种各样的累积操作,包括求和、数组去重和计算等等。当您需要对数组中的元素进行累积操作时,考虑使用reduce()方法。