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