首页 > 解决方案 > 从反应中的对象数组(状态)计算总量(数量*价格)的最佳方法是什么?

问题描述

我有一个对象数组作为我的初始状态

const [product,setProduct]=useState([
    {
          id:1,
          product_title:"Item 1",
          quantity:2,
          price:100.00
    },
    {
          id:2,
          product_title:"Item 2",
          quantity:3,
          price:300.00
    },
])

在这里,我还添加了更多项目,同时,我想根据对象中每个项目的数量*价格计算总金额。现在我正在使用 map() 函数,如下面的代码,我得到了确切的结果

const countTotal=(items)=>
{
     var total=0;
     product.map(item=>total+=item.quantity*item.price)
     setTotal(total)
}

现在我的问题是它是否是一个好的过程,或者是否有比这个过程更好和标准的替代方法。

标签: reactjs

解决方案


您使用的.map方法不正确,您应该使用 reduce 方法,像这样

`const total = product.reduce((prev, cur) => {
  return prev + cur.quantity * cur.price;
}, 0);`

推荐阅读