ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で共有キーを使用してオブジェクトのプロパティ値を合計する方法

JavaScript で共有キーを使用してオブジェクトのプロパティ値を合計する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 17:18:18255ブラウズ

How to Sum Object Property Values with Shared Keys in JavaScript?

JavaScript での共有キーを使用したオブジェクト プロパティ値の合計

次の JavaScript オブジェクト配列について考えてみましょう:

const objArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 42},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 54}, // Duplicate key
];

目的は、対応する val 値を合計して重複キーをマージし、次のような配列を生成することです。 this:

const reducedObjArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 96},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
];

これを達成するには、reduce メソッドと map メソッドを採用した堅牢なソリューションを利用できます:

let counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

let reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value};
});

このアプローチでは、まず、reduce を使用して Map を作成します。ここで、各キーは元の配列からの一意のキーと、対応する値は同じキーを持つすべての val 値の合計です。

最後に、map メソッドがcounts マップを使用して、目的のマージされた値を持つオブジェクトの配列に変換し直します。このコードの出力は、reducedObjArr で、必要に応じてマージおよび合計された値が含まれます。

以上がJavaScript で共有キーを使用してオブジェクトのプロパティ値を合計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。