Reputation: 129
How I can index array with not uniq keys. I try use lodash indexBy, but it gives not 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 }] }
Upvotes: 7
Views: 5200
Reputation: 239443
You need to use _.groupBy
for that, like this
console.log(_.groupBy(keys, 'dir'));
would print
{ left: [ { dir: 'left', code: 97 }, { dir: 'left', code: 100 } ],
right: [ { dir: 'right', code: 50 }, { dir: 'right', code: 51 } ] }
Upvotes: 9