【发布时间】:2020-04-22 23:18:23
【问题描述】:
我有以下问题:我有一个物品清单数组,其中每个物品都是在不同时间和成本购买的相同产品。进行销售后,我想根据已售出的单位获得平均成本,然后返回更新后的对象数组(或新的数组)以及这些属性的更新值(在这种情况下,数量会减少,直到达到 0并移动到下一个对象)。
例如,具有以下清单对象数组:
"shirts": [
{
"purchase_id": "vsibh",
"dateOfPurchase": "17/04/2020, 22:44",
"provider": "Adidas",
"product": "Shirt",
"sku": "2390",
"cost": 50,
"quantity": 400,
"total": 20000
},
{
"purchase_id": "wLqV2",
"dateOfPurchase": "18/04/2020, 12:22",
"provider": "Adidas",
"product": "Shirt",
"sku": "2390",
"cost": 40,
"quantity": 250,
"total": 10000
},
{
"purchase_id": "tCyyT",
"dateOfPurchase": "20/04/2020, 21:17",
"provider": "Adidas",
"product": "Shirt",
"sku": "2390",
"cost": 35,
"quantity": 600,
"total": 21000
}
]
如果我售出 900 件,我想获得每件售出衬衫的平均成本,在本例中为 43,06 ((400*50 + 250*40 + 250*35) / 900),然后返回使用减少的数量更新数组,如下所示:
"shirts": [
{
"purchase_id": "vsibh",
"dateOfPurchase": "17/04/2020, 22:44",
"provider": "Adidas",
"product": "Shirt",
"sku": "2390",
"cost": 50,
"quantity": 0,
"total": 0
},
{
"purchase_id": "wLqV2",
"dateOfPurchase": "18/04/2020, 12:22",
"provider": "Adidas",
"product": "Shirt",
"sku": "2390",
"cost": 40,
"quantity": 0,
"total": 0
},
{
"purchase_id": "tCyyT",
"dateOfPurchase": "20/04/2020, 21:17",
"provider": "Adidas",
"product": "Shirt",
"sku": "2390",
"cost": 35,
"quantity": 350,
"total": 12250
}
]
数组的对象已经按日期排序。我认为这个问题很容易解决,但我已经被困了好几天试图解决这个问题。任何帮助将不胜感激。
【问题讨论】:
-
不清楚你为什么用“队列”标签来标记它。你有对象的array,还是对象的queue?队列看起来不适合用于解决此问题的数据结构。
-
我将其标记为“队列”,因为这些元素是在先进先出的基础上使用的(如果您进行销售,您会从最旧的对象中减少库存数量)。很抱歉,如果我没有澄清这一点。
标签: javascript queue fifo