Каков наиболее эффективный способ группировки объектов в массиве?
Например, учитывая этот массив объектов:
[
{ 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" }
]
Im, отображающий эту информацию в таблице. Id нравится группировать разные методы, но я хочу суммировать значения.
Я использую Underscore.js для своей функции groupby, что полезно, но не делает весь трюк, потому что я не хочу, чтобы они "расщеплялись", но "сливались", больше похожи на group by
SQL group by
методу.
То, что я искал, сможет суммировать определенные значения (если требуется).
Поэтому, если я сделал groupby Phase
, Id хочу получить:
[
{ Phase: "Phase 1", Value: 50 },
{ Phase: "Phase 2", Value: 130 }
]
И если я сделал groupy Phase
/Step
, Id получает:
[
{ 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, а затем прокручивать результирующий объект, чтобы сами делать итоги?