2015-01-11 59 views
6

我如何索引數組與uniq鍵。我嘗試使用lodash indexBy,但它沒有給出預期的結果。lodash indexBy與非uniq鍵

var keys = [ 
    { 'dir': 'left', 'code': 97 }, 
    { 'dir': 'left', 'code': 100 }, 
    { 'dir': 'right', 'code': 50 }, 
    { 'dir': 'right', 'code': 51 } 
]; 
var a = _.indexBy(keys, 'dir'); 

結果:

{ left: { dir: 'left', code: 100 }, 
    right: { dir: 'right', code: 51 } } 

預期結果:

{ left: [{ dir: 'left', code: 100 }, { 'dir': 'left', 'code': 97 }], 
    right: [{ dir: 'right', code: 51 }, { 'dir': 'right', 'code': 50 }] } 
+2

注意:'_.indexBy'現在被稱爲'_.keyBy'(https://lodash.com/docs#keyBy)。 – jtheletter

回答

8

您需要使用_.groupBy爲,這樣

console.log(_.groupBy(keys, 'dir')); 

將打印

{ left: [ { dir: 'left', code: 97 }, { dir: 'left', code: 100 } ], 
    right: [ { dir: 'right', code: 50 }, { dir: 'right', code: 51 } ] }