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 サイトの他の関連記事を参照してください。