在数组中分组对象的最有效方法是什么?
例如,给定这个对象数组:
[{ 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函数,这很有帮助,但并不完整,因为我不希望它们“分裂”而是“合并”,更像SQLgroup by
方法。
我正在寻找的是能够合计特定值(如果要求)。
所以如果我做了GroupbyPhase
,我想收到:
[{ Phase: "Phase 1", Value: 50 },{ Phase: "Phase 2", Value: 130 }]
如果我做了groupPhase
/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,然后循环遍历生成的对象来自己做总计?