Array#group()とArray#groupToMap()
lodashのGroupByのようなメソッドで簡単にグループできるProposalが提案されている。
const items = [
{ type: 'foo', name: '001' },
{ type: 'bar', name: '002' },
{ type: 'foo', name: '003' },
{ type: 'baz', name: '004' },
]
const result = items.group(({ type }) => type)
/**
{
foo: [
{ type: 'foo', name: '001' },
{ type: 'foo', name: '003' },
],
bar: [
{ type: 'bar', name: '002' },
],
baz: [
{ type: 'baz', name: '004' },
]
}
*/
const map = items.groupToMap(({ type }) => type)
map.get('foo')