【问题标题】:Addup specific value from array of objects从对象数组中添加特定值
【发布时间】:2020-10-05 21:08:57
【问题描述】:

我正在为 React 中的实践创建一个小项目。我的想法是在购物车图标附近显示购物车中的部分数量(就像在每个电子商务应用程序中一样经典),但我不知道该怎么做。我尝试使用 useEffect 和 useState 组合,但它没有工作,或者至少我没有设法正确设置它,我有这样的 useState:

const [numberOfPortion, setNumberOfPortion] = useState(0);

我放入购物车的对象如下所示:

[{
foodName: "Chicken Wingos"
foodPrice: 45
numberOfPortions: 2
},
{
foodName: "Chicken curry"
foodPrice: 50
numberOfPortions: 1
}]

因此,最好的办法是获取每个部分的数量并将其相加,以在这种情况下显示靠近购物车图标的“3”。我应该在这里使用 useState 和 useEffect 还是有更好的解决方案?我接受任何想法,因为我不确定如何完成这项工作。

【问题讨论】:

    标签: reactjs react-hooks


    【解决方案1】:

    我认为这是获得它的最简单方法。

    let num = 0;
    for (let i in arr) num+=arr[i].numberOfPortions;
    

    【讨论】:

      【解决方案2】:

      你可以使用reduce函数

      const myArray = [{
          foodName: "Chicken Wingos"
          foodPrice: 45
          numberOfPortions: 2
        },
        {
          foodName: "Chicken curry"
          foodPrice: 50
          numberOfPortions: 1
        }]
      
      const totalPortions = myArray.reduce((acc, value) => acc + value.numberOfPortions, 0);
      
      

      【讨论】:

      • 在使用您的解决方案时,我得到“减少没有初始值的空数组”
      • 你必须在reduce函数之后传递一个默认的初始值。我更新了答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 2018-11-05
      • 2016-12-06
      • 2017-11-14
      相关资源
      最近更新 更多