首頁 > web前端 > js教程 > Underscore.js 如何有效地將物件陣列中的資料分組和總和?

Underscore.js 如何有效地將物件陣列中的資料分組和總和?

Barbara Streisand
發布: 2024-12-28 03:56:10
原創
775 人瀏覽過

How Can Underscore.js Efficiently Group and Sum Data in an Array of Objects?

使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板