Maison >interface Web >js tutoriel >Comment fusionner des clés en double et additionner leurs valeurs dans des tableaux d'objets JavaScript ?

Comment fusionner des clés en double et additionner leurs valeurs dans des tableaux d'objets JavaScript ?

DDD
DDDoriginal
2024-12-15 21:18:12976parcourir

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

Fusionner les clés en double et les valeurs de somme dans des tableaux d'objets JavaScript

Lorsque vous travaillez avec des tableaux d'objets JavaScript, vous pouvez rencontrer des clés en double qui représentent des entités similaires. Pour consolider ces doublons et agréger leurs valeurs correspondantes, vous pouvez exploiter l'approche suivante :

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);

Cette solution exploite une carte pour accumuler les valeurs associées aux clés en double. Il parcourt le tableau d'origine, extrayant la clé et la valeur de chaque objet. Si la clé existe déjà dans la Map, elle incrémente sa valeur correspondante. Enfin, il reconvertit la carte en un tableau d'objets, fournissant le résultat souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn