Lodash indexBy without uniq keys

How can I index an array without uniq keys. I am trying to use lodash indexBy, but it gives the expected result.

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

Result:

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

Expected Result:

 { left: [{ dir: 'left', code: 100 }, { 'dir': 'left', 'code': 97 }], right: [{ dir: 'right', code: 51 }, { 'dir': 'right', 'code': 50 }] } 
+6
source share
1 answer

For this you need to use _.groupBy , for example

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

will print

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

Source: https://habr.com/ru/post/980824/


All Articles