Regrup复合阵列的lodash [对象]



我是新手

我是Lodash的新手,试图解决这个问题,但可以找到一种很好的方法。

我有一系列订单和一系列线,每个订单中都有一张票。

数据的结构如下:

[{
"id": 201,    
"order": "Buyer 1",  
"lines": ▿[
  ▿{
    "id": 1,        
    "ticket": ▿{
      "id": 151,
      "event": ▿{
        "id": 31,
        "name": "Event 1"           
      },
      "name": "Event 1 Ticket 1",        
      "price": 39,
      "minimum": 1,
      "maximum": 5
    },
    "quantity": 1
  },
  ▿{
    "id": 2,       
    "ticket": {
      "id": 152,
      "event": {
        "id": 31,
        "name": "Event 1"            
      },
      "name": "Event 1 Ticket 2",        
      "price": 60,
      "minimum": 2,
      "maximum": 4
    },
    "quantity": 5
  },
 ▿{
    "id": 3,       
    "ticket": {
      "id": 153,
      "event": {
        "id": 33,
        "name": "Event 1"            
      },
      "name": "Event 3 Ticket 2",        
      "price": 60,
      "minimum": 2,
      "maximum": 4
    },
    "quantity": 5
  }       
],
"created_at": "2016-12-22T17:58:27+0000"
},    
...]

我需要按事件名称对所有订单进行分组,并且需要下一个结构:

[{
 "event_id": 31,
 "event_name":"Event 1",
 "total_tickets": 6,
 "total_sold": 339
 "orders": [
   {
    "id": 201,
    "order": "Buyer 1"  
   },
   ....
 ]},
 {
 "event_id": 33,
 "event_name":"Event 3",
 "total_tickets": 5,
 "total_sold": 300
 "orders":[
    {
     "id": 201,
     "order": "Buyer 1"  
    }                            
  ]},
 ....
]

" total_tickets" - >事件的订单票(数量)

的总和

" total_sold" - >事件的订单总和'(价格*数量)

任何帮助都会非常有用

看一下_.reduce(甚至Vainilla JS Array.reduce

作为一个友好的建议,请尝试想象和素描 - 在您的脑海中或纸上 - 使用该数据确切需要做什么,然后开始寻找可以做到的工具,而不是相反。

最新更新