链接 groupby 和 pluck

Chaining groupby and pluck

data =[
{
    "origin": "Mumbai",
    "destination": "Chennai"
},
{
    "origin": "Mumbai",
    "destination": "Delhi",
},
{
    "origin": "Pune",
    "destination": "Brahmapur",
},]

期望的输出:

[
  {"Mumbai" : ["Chennai","Delhi"]},
  {"Pune" : ["Brahmapur"]}
]

以下是我正在尝试做的事情:

var list = _.pluck(data, 'destination'); // it gives the array of destinations
var gList = _.groupBy(data, 'origin'); // it gives me json which are grouped by the origin key.

我试图在下面结合 pluckgroupby 这将给我特定原始密钥的目的地数组但显然它不工作。

var gpList = _.groupBy(_.pluck(data, 'parname'), 'category');

您几乎已经完成了这些功能选择。

首先要做的就是groupBy原点。这将 return 一个看起来像这样的对象:

{
    Mumbai: [ { origin: 'Mumbai', destination: 'Chennai' },
              { origin: 'Mumbai', destination: 'Delhi' } ],

    Pune: [ { origin: 'Pune', destination: 'Brahmapur' } ]
}

然后使用mapObject to pluck目的地:

var result = _.chain(data)
    .groupBy('origin')
    .mapObject(group => _.pluck(group, 'destination'))
    .value()