[英]Add up all values from objects in array but multiplied with quantity
我想為具有 Cart 的應用程序創建邏輯。 因此,當用戶單擊購物車時,可以看到其中的商品並可以看到總價。 我擁有的是將所有對象存儲在其中的鈎子,如下所示:
[{
foodName: "Njoki with sos"
foodPrice: 35
numberOfPortions: 1
},
{
foodName: "Chicken Wingos"
foodPrice: 45
numberOfPortions: 2
}]
我創建了如下所示的邏輯:
useEffect(() => {
cartFood.map((food) => {
return priceArray.push(food.foodPrice * food.numberOfPortions);
});
}, [cartFood]);
let priceArray = [];
let cartTotalPrice = priceArray.reduce((a, b) => a + b, 0);
但它不起作用,cartTotal 價格為 0,即使它應該是 125,而且我在編譯器中收到來自 React 的通知“React Hook useEffect 缺少依賴項:'priceArray'。要么包含它,要么刪除依賴項數組”所以我猜有更好的方法來做到這一點......我做錯了什么,編寫這個邏輯的最佳方法是什么?
非常感謝!
您可以使用其中一種方法循環遍歷數組並獲得總價
let totalPrice = 0;
values.forEach(value => {
totalPrice += value.foodPrice * value.numberOfPortions;
});
let totalPrice = 0;
for (let i = 0; i < values.length; i++) {
totalPrice += values[i].foodPrice * values[i].numberOfPortions;
}
let totalPrice = 0;
for (let value of values) {
totalPrice += value.foodPrice * value.numberOfPortions;
}
const totalPrice = values.reduce(
(acc, cur) => acc + cur.foodPrice * cur.numberOfPortions,
0
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.