2017-03-22 17 views
0
data =[ 
{ 
    "origin": "Mumbai", 
    "destination": "Chennai" 
}, 
{ 
    "origin": "Mumbai", 
    "destination": "Delhi", 
}, 
{ 
    "origin": "Pune", 
    "destination": "Brahmapur", 
},] 

원하는 출력 :체인화 GROUPBY와 따

다음
[ 
    {"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. 

내가 뽑은GROUPBY을 결합 아래에 시도하는 특정 원점 키에 대한 목적지 배열을 제공 하겠지만 분명히 작동하지 않습니다.

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

답변

1

거의 모든 기능을 사용할 수 있습니다.

먼저 할 일은 groupBy 출처입니다.

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

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

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

그런 다음 pluck에 대상을 mapObject를 사용 :이은 다음과 같습니다 객체를 반환합니다