【发布时间】:2021-09-24 11:59:23
【问题描述】:
假设这个数组:
[
{ department: "D1", section: "S1", name: "Test", other: "value", hierarchy: 1 },
{ department: "D2", section: "S1", name: "Test", other: "value", hierarchy: 1 },
{ department: "D2", section: "S2", name: "Test", other: "value", hierarchy: 2 }
]
我想按部门、部门对数据进行分组并对部门、部门、层次结构进行排序
结果是:
[
"D1": [
"S1": [
{ name: "Test", other: "value" }
]
],
"D2": [
"S1" [
{ name: "Test", other: "value" }
],
"S2" [
{ name: "Test", other: "value" },
{ name: "Test", other: "value" }
]
]
]
这是我前进方向的骨架:
var grouped = _.mapValues(_.chain(data).sortBy(item => item.hierarchy).groupBy(item => item.department).value(),
clist => clist.map(data => _.omit(data, 'department')));
_.forEach(grouped, function (item, department) {
const members = _.groupBy(item, (item) => {
return [item['section'], item['name']];
});
});
有没有更好的方法来使用 Lodash 实现它?
【问题讨论】:
-
您的结果不是有效的 javascript。
标签: javascript arrays sorting lodash