对对象数组进行分组的最有效方法
2022-08-29 22:25:50
在数组中按对象分组的最有效方法是什么?
例如,给定以下对象数组:
[
{ Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" },
{ Phase: "Phase 1", Step: "Step 1", Task: "Task 2", Value: "10" },
{ Phase: "Phase 1", Step: "Step 2", Task: "Task 1", Value: "15" },
{ Phase: "Phase 1", Step: "Step 2", Task: "Task 2", Value: "20" },
{ Phase: "Phase 2", Step: "Step 1", Task: "Task 1", Value: "25" },
{ Phase: "Phase 2", Step: "Step 1", Task: "Task 2", Value: "30" },
{ Phase: "Phase 2", Step: "Step 2", Task: "Task 1", Value: "35" },
{ Phase: "Phase 2", Step: "Step 2", Task: "Task 2", Value: "40" }
]
我在表格中显示此信息。我想按不同的方法分组,但我想对值求和。
我使用Underscore.js作为它的groupby函数,这很有帮助,但不能完成整个技巧,因为我不希望它们“拆分”而是“合并”,更像是SQL方法。group by
我正在寻找的是能够合计特定值(如果需要)。
因此,如果我做了分组,我希望收到:Phase
[
{ Phase: "Phase 1", Value: 50 },
{ Phase: "Phase 2", Value: 130 }
]
如果我做了分组/,我会得到:Phase
Step
[
{ Phase: "Phase 1", Step: "Step 1", Value: 15 },
{ Phase: "Phase 1", Step: "Step 2", Value: 35 },
{ Phase: "Phase 2", Step: "Step 1", Value: 55 },
{ Phase: "Phase 2", Step: "Step 2", Value: 75 }
]
是否有有用的脚本,或者我应该坚持使用Underscore.js,然后循环访问生成的对象以自己执行总计?