EC
const groupBy = (items, fn = id) => {
return items.reduce((acc, v) => {
const key = fn(v)
acc[key] = acc[key] || [];
acc[key].push(v);
return acc
}, {})
}
const groupBy = (items, fn = x => x) => items.reduce((acc, v) => {
const key = fn(v);
acc[key] ? acc[key].push(v) : (acc[key] = []).push(v);
return acc;
}, {});