📜  如何使用reduce在同一数组中的对象中添加价格数量 - Javascript(1)

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

如何使用reduce在同一数组中的对象中添加价格数量 - Javascript

在Javascript中,我们可以使用reduce()函数来执行一个数组的所有项的某个操作。在这个例子中,我们将使用reduce()来计算同一数组中的对象的价格总和和数量总和,并将结果存储在新的对象中。

步骤

首先,我们需要准备一个示例对象数组,模拟我们要计算的数据。

const items = [
  { name: 'item1', price: 10, quantity: 2 },
  { name: 'item2', price: 20, quantity: 1 },
  { name: 'item3', price: 5,  quantity: 4 },
];

现在我们将使用reduce()来计算所有项的价格总和和数量总和。

const result = items.reduce((acc, item) => {
  acc.totalPrice += item.price * item.quantity;
  acc.totalQuantity += item.quantity;
  return acc;
}, { totalPrice: 0, totalQuantity: 0 });

console.log(result);
// Output: { totalPrice: 60, totalQuantity: 7 }

在这个代码中,我们定义了一个初始值,它是一个对象,包含我们要计算的结果的属性。我们将这个初始值传递给reduce(),并将其作为第二个参数传递。

在每次迭代中,我们将当前对象的价格乘以数量,加入到累加器对象的totalPrice属性中,同时将数量加入到totalQuantity属性中。最后,我们将累加器对象作为每一次迭代的结果返回,以便由下一次迭代使用。

当reduce()完成时,我们将得到一个包含我们计算的结果的对象,即总价格和总数量。

结论

使用reduce()函数来计算同一数组中的对象的价格总和和数量总和是一个非常简单的过程。只需将一个初始值对象作为参数传递,并在每次迭代中更新相应的属性即可。最后,我们将得到一个包含计算结果的对象,可以用于后续的操作。

下面是完整的代码片段,按markdown标明:

// 准备示例对象数组
const items = [
  { name: 'item1', price: 10, quantity: 2 },
  { name: 'item2', price: 20, quantity: 1 },
  { name: 'item3', price: 5,  quantity: 4 },
];

// 使用reduce()函数计算价格总和和数量总和
const result = items.reduce((acc, item) => {
  acc.totalPrice += item.price * item.quantity;
  acc.totalQuantity += item.quantity;
  return acc;
}, { totalPrice: 0, totalQuantity: 0 });

// 输出结果
console.log(result);
// Output: { totalPrice: 60, totalQuantity: 7 }

希望这篇文章可以帮助你更好地理解如何使用reduce()函数在同一数组中的对象中添加价格数量。