根据每天的价格计算产品总价(ReactJS)

时间:2021-04-15 10:04:02

标签: javascript arrays reactjs arraylist

我正在考虑如何根据用户添加的产品计算每个工作日的总价的解决方案。例如,我需要从嵌套在 productsAddedToPackage 对象内的两个价格数组中获取星期一的所有价格。周一产品 1 和产品 2 的价格是 => 1.11 和 4.44。所以,这应该等于 5.55。然后我需要将星期一的 packagePrices 更新为从 0.00 到 5.55。关于如何进行此类计算的任何想法?

这就是我最初的工作日总价的样子:

packagePrices: [
            {
                dayOfWeek: 1,
                dayOfWeekName: 'Monday',
                price: 0.00
            },
            {
                dayOfWeek: 2,
                dayOfWeekName: 'Tuesday',
                price: 0.00
            },
            {
                dayOfWeek: 3,
                dayOfWeekName: 'Wednesday',
                price: 0.00
            },
            {
                dayOfWeek: 4,
                dayOfWeekName: 'Thirsday',
                price: 0.00
            },
            {
                dayOfWeek: 5,
                dayOfWeekName: 'Friday',
                price: 0.00
            },
            {
                dayOfWeek: 6,
                dayOfWeekName: 'Saturday',
                price: 0.00
            },
            {
                dayOfWeek: 0,
                dayOfWeekName: 'Sunday',
                price: 0.00
            },
        ],

这里是所有产品

    productsAddedtoPackage:[ 
    { 
        code: "S0000065"
        name: "whiskey"
        packageBundledProductType: 0
        prices: [
           {dayOfWeek: 1, dayOfWeekName: "Monday", price: 1.11, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 2, dayOfWeekName: "Tuesday", price: 2.22, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 3, dayOfWeekName: "Wednesday", price: 3.33, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 4, dayOfWeekName: "Thursday", price: 4.44, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 5, dayOfWeekName: "Friday", price: 5.55, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 6, dayOfWeekName: "Saturday", price: 6.66, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 0, dayOfWeekName: "Sunday", price: 7.77, id: "00000000-0000-0000-0000-000000000000"}
        ]
        productId: "223be005-4fae-4b63-1705-08d8ffe591d2"
        quantity: 1
  },        
  { 
        code: "S0000066"
        name: "beer"
        packageBundledProductType: 0
        prices: [
           {dayOfWeek: 1, dayOfWeekName: "Monday", price: 4.44, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 2, dayOfWeekName: "Tuesday", price: 4.44, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 3, dayOfWeekName: "Wednesday", price: 4.44, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 4, dayOfWeekName: "Thursday", price: 4.44, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 5, dayOfWeekName: "Friday", price: 4.44, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 6, dayOfWeekName: "Saturday", price: 4.44, id: "00000000-0000-0000-0000-000000000000"},
           {dayOfWeek: 0, dayOfWeekName: "Sunday", price: 4.44, id: "00000000-0000-0000-0000-000000000000"}
        ]
        productId: "223be005-4fae-4b63-1705-08d8ffe591d2"
        quantity: 1
   }
]

提前致谢!

1 个答案:

答案 0 :(得分:-1)

我将改变“包装价格”以接受一个属性可以是一个具有价格和id的对象数组

packagePrices: [
            {
                dayOfWeek: 1,
                dayOfWeekName: 'Monday',
                purchases: [{price: 1.11, id: "00000000-0000-0000-0000-000000000000"}, 
                {price: 4.44, 
                 id:"00000000-0000-0000-0000-000000000000"}],
                price: 0.00
            },

所以每次有人进行新购买时,您都可以创建一个函数来映射产品并获取价格和 id 并将其推送到购买数组中,然后您只需在购买数组中进行映射并对价格求和