2016-08-23 24 views
3

模式,我有這個數組的項目:使用Javascript - 的GroupBy鍵以及如何生成的對象

[ 
    {id: 1, label: 'test', parent: 'parent 1'}, 
    {id: 2, label: 'fool', parent: 'parent 1'}, 
    {id: 3, label: 'bla', parent: 'parent 2'}, 
    {id: 4, label: 'foo', parent: 'parent 2'} 
] 

,我試圖讓這樣的事情出來的:

[ 
    {parent: 'parent 1', members: [{id: 1, label: 'test'}, {id: 2, label: 'fool']}, 
    {parent: 'parent 2', members: [{id: 3, label: 'bla'}, {id: 4, label: 'foo']} 
] 

使用下劃線.js我能夠達到這一點:

_.groupBy(myList,'parent') 
=> 
{ 
    'parent 1': [{id: 1, label: 'test'}, {id: 2, label: 'fool'], 
    'parent 2': [{id: 3, label: 'bla'}, {id: 4, label: 'foo'], 
} 

......這不完全是我想要的。我敢肯定這是愚蠢的東西,但得到那種stucked :(

回答

0

好了,在這裏找到了答案Group objects by property in javascript

所以現在GROUPBY被封裝在一個鏈和結果傳遞給_.map功能:

.chain(myList) 
     .groupBy('parent') 
     .map(function(value, key) { 
     return { 
      parent: key, 
      members: value 
     } 
    }) 
    .value() 
相關問題