簡體   English   中英

將數組中對象的所有值相加,但乘以數量

[英]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;
});

for循環

let totalPrice = 0;

for (let i = 0; i < values.length; i++) {
  totalPrice += values[i].foodPrice * values[i].numberOfPortions;
}

for-of 循​​環

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM