Javascript:按id对数组对象进行分组
Javascript: grouping array of objects by id
我有一个问题,我似乎几乎没有线索得到答案。
我不知道我做错了什么。
代码:
function groupBy(arr, cb) {
var groups = {};
arr.forEach(function(o) {
var group = JSON.stringify(cb(o));
groups[group] = groups[group] || [];
groups[group].push(o);
});
return Object.keys(groups).map(function(group) {
return groups[group];
});
var result = groupBy(arr, function(i) {
return currentObject.branch.id;
})
}
var list = [{
id: "102",
name: "Alice"
}, {
id: "205",
name: "Bob",
title: "Dr."
}, {
id: "592",
name: "Clyde",
age: 32
}];
console.log(groupBy(list, function(i) {
return i.id;
}));
它应该返回什么:
{
"102": [{id: "102", name: "Alice"}],
"205": [{id: "205", name: "Bob", title: "Dr."}],
"592": [{id: "592", name: "Clyde", age: 32}]
}
您只需要返回groups
,而不需要在此之前对对象进行字符串化。
function groupBy(array, cb) {
var groups = Object.create(null);
array.forEach(function (o) {
var key = cb(o);
groups[key] = groups[key] || [];
groups[key].push(o);
});
return groups;
}
var list = [{ id: "102", name: "Alice" }, { id: "205", name: "Bob", title: "Dr." }, { id: "592", name: "Clyde", age: 32 }];
console.log(groupBy(list, function (i) { return i.id; }));
.as-console-wrapper { max-height: 100% !important; top: 0; }
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序