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