【发布时间】:2018-01-28 16:00:37
【问题描述】:
我需要实现一个函数,其中给定一个包含多个对象的数组:
var list = [
{id: "102", name: "Alice"},
{id: "205", name: "Bob", title: "Dr."},
{id: "592", name: "Clyde", age: 32}];
必须返回对象属性回调函数要求的任何内容:
{
"3": [{id: "205", name: "Bob", title: "Dr."}],
"5": [{id: "102", name: "Alice"},
{id: "592", name: "Clyde", age: 32}]
}
groupBy(list, function(i) { return i.name.length; });
例如:此回调要求返回每个对象的 name.length 加上原始对象作为其值,如果它们相同,则将其返回到同一个数组中。
var list = [
{id: "102", name: "Alice"},
{id: "205", name: "Bob", title: "Dr."},
{id: "592", name: "Clyde", age: 32}];
function groupBy(arr, cb) {
var newObj = {};
var newArr = [];
for (key of arr) {
newObj = cb(key);
}
return newObj;
}
groupBy(list, function(i) { return i.id; });
我自己的解决方案没有太多进展,而且我碰壁了。如果你们能帮助我,我将不胜感激。
干杯
【问题讨论】:
-
这是学校课还是教程?这段代码在上一次经常出现...
标签: javascript algorithm logic