我有一个对象数组,需要根据给定的回调函数“排序”并放入另一个对象中。例如:
var list = [{id: "102", name: "Alice"},
{id: "205", name: "Bob", title: "Dr."},
{id: "592", name: "Clyde", age: 32}];
groupBy(list, function(i) { return i.name.length; });
应该返回:
{
"3": [{id: "205", name: "Bob", title: "Dr."}],
"5": [{id: "102", name: "Alice"},
{id: "592", name: "Clyde", age: 32}]
这是我到目前为止所拥有的,但我被困住了......
function groupBy(arr, cb) {
let result = {};
arr.forEach(function (obj) {
var group = [];
group.push(cb(i))
result[group].push(obj);
}
return result;
)}