【发布时间】:2020-02-11 14:21:48
【问题描述】:
这是一个如此简单的任务,但不知何故我被卡住了。我有一个如下所示的产品对象数组:
[{id: 1, price: 30, quantity: 2}, {id: 2, price: 20, quantity: 4}, {id: 3, price: 10, quantity: 2}]
我需要计算所有商品的总价格,应该是:特定产品的价格乘以数量,与之前的产品相同。示例:(30*2)+(20*4)+(10*2)
我的代码如下所示:
items.forEach(function (item) {
let sum = item.price * item.quantity;
console.log(sum);
});
输出如下:
60
80
20
但我需要计算应该是 160 的总数并将其呈现到页面上,但不知何故我无法弄清楚如何做到这一点
【问题讨论】:
-
所以把你的
let sum移到for循环之外......说真的,你离自己解决这个问题只有一步之遥。 -
你需要使用 JavaScript 中的 reduce 函数。
-
.reduce((p, { price, quantity }) => p + price*quantity, 0) -
我注意到您没有在代码中的任何地方使用
+;如果您尝试计算总和,这是一个不好的迹象。 -
@Taplar:至少一步,但不仅仅是将
let sum移出循环。
标签: javascript