Javascript 将数组中对象的所有值相加,但乘以数量
我想为我的应用程序创建有购物车的逻辑。所以,当用户点击购物车时,可以看到购物车中的商品,也可以看到总价。我所拥有的是一个钩子,它将所有对象存储在里面,如下所示:Javascript 将数组中对象的所有值相加,但乘以数量,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我想为我的应用程序创建有购物车的逻辑。所以,当用户点击购物车时,可以看到购物车中的商品,也可以看到总价。我所拥有的是一个钩子,它将所有对象存储在里面,如下所示: [{ foodName: "Njoki with sos" foodPrice: 35 numberOfPortions: 1 }, { foodName: "Chicken Wingos" foodPrice: 45 numberOfPortions: 2 }] useEffect(() =
[{
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);
我创建了如下逻辑:
[{
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'。要么包含它,要么删除依赖项数组”,所以我想有更好的方法来做。。。
我做错了什么?写这个逻辑的最好方法是什么
非常感谢 您可以使用这两种方法中的任何一种来循环您的阵列并获得总价格 弗雷奇 for循环 减少
如果您对
Array.prototype.map()
的返回值不感兴趣,那么.map()
不是合适的工具。@Andreas您好,我也尝试过forEach(),但结果相同,0var total=[/*yourarray*/].reduce(函数(acc,cur){return acc+cur.foodPrice*cur.numberofparties;},0)代码>
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
);