Javascript 如何从React中的项目列表中查找总价?
我正在一个电子商务网站上工作,以作出反应。当用户在购物车中添加产品时,购物车的状态将更新。看起来像这样-Javascript 如何从React中的项目列表中查找总价?,javascript,Javascript,我正在一个电子商务网站上工作,以作出反应。当用户在购物车中添加产品时,购物车的状态将更新。看起来像这样- const[cart, setCart] = useState([]); 一切正常,购物车在Firestore的帮助下更新。购物车中的每个商品都有属性-id、图像、产品名称和产品价格 我想显示总价(购物车中所有商品的价格总和)。我想做的是- const getCartTotal = () => { let total = 0; { cart?.map((i
const[cart, setCart] = useState([]);
一切正常,购物车在Firestore的帮助下更新。购物车中的每个商品都有属性-id、图像、产品名称和产品价格
我想显示总价(购物车中所有商品的价格总和)。我想做的是-
const getCartTotal = () => {
let total = 0;
{
cart?.map((item) => total + item.productPrice);
}
};
但这在浏览器中给了我一个错误-
第37:7行:应为赋值或函数调用,但看到的是表达式没有未使用的表达式
正确的方法应该是什么?提前谢谢 我建议您使用
reduce
而不是map
我的解决方案既有map,也有reduce。您在映射函数中犯了一些小错误。您刚刚返回了total+item.productPrice
,但没有将其存储在任何地方
const cart = [
{
price: 23,
id:1
},
{
price: 27,
id:2
},
{
price: 60,
id:2
},
{
price: 40,
id:4
}
]
function findSumUsingReduce(){
const s = cart.reduce((s,{price}) => s+price,0)
return s;
}
function findSumUsingMap(){
let t = 0;
cart.map(({price}) => t = t + price)
return t;
}
const totalUsingReduce = findSumUsingReduce()
const totalUsingMap = findSumUsingMap()
console.log('totalUsingReduce',totalUsingReduce)
console.log('totalUsingMap',totalUsingMap)
购物车?
购物车?这意味着您的表达式应该是cart?事物:其他代码>,但可能是打字错误?@holdoff饥饿是的,这是可选链接您不想要total+=item.productPrice