I have a JavaScript task where I have to implement a function \"groupBy\", which, when given an array of objects and a function, returns an object w
Solution with pure JS:
var list = [{
id: "102",
name: "Alice"
},
{
id: "205",
name: "Bob",
title: "Dr."
},
{
id: "592",
name: "Clyde",
age: 32
}
];
function groupBy(array, callback) {
return array.reduce(function(store, item) {
var key = callback(item);
var value = store[key] || [];
store[key] = value.concat([item]);
return store;
}, {})
}
console.log('example 1: ', groupBy(list, function(i) { return i.id; }));
console.log('example 2: ', groupBy(list, function(i) { return i.name.length; }));