使用Underscore.js 對物件陣列進行高效GroupBy
對物件陣列中的資料進行分組對於聚合和分析資訊至關重要。這在處理結構化資料時尤其重要。在各種方法中,Underscore.js 提供了一個強大的解決方案,用於根據特定條件對物件進行分組。
在這種情況下,您希望透過各種欄位組合(例如 Phase 和 Step)對物件進行分組,同時也求和對應的值。 Underscore.js 提供了一個 groupBy 函數,可以有效率地處理此任務。
以下是如何使用Underscore.js 按Phase 對物件陣列進行分組的範例:
const data = [ { 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" } ]; const groupedByPhase = _.groupBy(data, 'Phase');
此運算產生一個對象,其中鍵是Phase 的不同值,值是屬於每個階段的物件數組。要計算每個階段的總值,您可以使用reduce函數,如下所示:
const phaseTotals = _.map(groupedByPhase, function(phaseData) { return { Phase: phaseData[0].Phase, Value: _.reduce(phaseData, function(memo, object) { return memo + Number(object.Value); }, 0) }; });
同樣,您可以使用相同的原理按任意欄位組合對物件進行分組。透過利用 Underscore.js 的 groupBy 函數,您可以有效地將資料分組,從而為資料集提供有價值的見解。
以上是Underscore.js 如何有效地將物件陣列中的資料分組和總和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!