ホームページ >ウェブフロントエンド >jsチュートリアル >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 サイトの他の関連記事を参照してください。