ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript オブジェクト配列で重複キーをマージし、それらの値を合計するにはどうすればよいですか?

JavaScript オブジェクト配列で重複キーをマージし、それらの値を合計するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-15 21:18:12971ブラウズ

How to Merge Duplicate Keys and Sum Their Values in JavaScript Object Arrays?

JavaScript オブジェクト配列の重複キーをマージし、値を合計する

オブジェクトの JavaScript 配列を操作する場合、類似したエンティティを表す重複キーが発生することがあります。これらの重複を統合し、対応する値を集計するには、次のアプローチを利用できます。

let 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}
];

// Utilize a Map to consolidate duplicate keys
let counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

// Convert the Map back to an array
let reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value}
})

console.log(reducedObjArr);

このソリューションでは、マップを利用して重複キーに関連付けられた値を蓄積します。元の配列を反復処理して、各オブジェクトのキーと値を抽出します。キーがマップ内にすでに存在する場合、対応する値がインクリメントされます。最後に、Map をオブジェクトの配列に変換して戻し、望ましい結果を提供します。

以上がJavaScript オブジェクト配列で重複キーをマージし、それらの値を合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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