ホームページ > ウェブフロントエンド > jsチュートリアル > Underscore.js はどのようにしてオブジェクトの配列内のデータを効率的にグループ化し、合計できるのでしょうか?

Underscore.js はどのようにしてオブジェクトの配列内のデータを効率的にグループ化し、合計できるのでしょうか?

Barbara Streisand
リリース: 2024-12-28 03:56:10
オリジナル
730 人が閲覧しました

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

Underscore.js を使用したオブジェクトの配列の効率的な GroupBy

オブジェクトの配列内のデータをグループ化することは、情報を集約して分析するために不可欠です。これは、構造化データを扱う場合に特に重要です。さまざまな方法の中でも、Underscore.js は、特定の基準に基づいてオブジェクトをグループ化するための強力なソリューションを提供します。

この場合、フェーズやステップなどのフィールドのさまざまな組み合わせによってオブジェクトをグループ化すると同時に、合計も行います。対応する値。 Underscore.js は、このタスクを効率的に処理できる groupBy 関数を提供します。

これは、Underscore.js を使用してオブジェクトの配列をフェーズ別にグループ化する方法の例です:

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');
ログイン後にコピー

この操作この結果、キーがフェーズの個別の値であり、値が各フェーズに属するオブジェクトの配列であるオブジェクトが生成されます。各フェーズの合計値を計算するには、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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート