Lodash for reagrup complex Array[object]

Lodash for reagrup complex Array[object]

我是新手,但我认为这是给高级 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

作为一个友善的建议,请尝试想象并勾勒出 - 在您的脑海中或在纸上 - 究竟需要用这些数据完成什么,然后开始寻找工具来完成它,而不是相反。