Maison > interface Web > js tutoriel > Comment additionner les valeurs des clés en double dans un tableau d'objets JavaScript ?

Comment additionner les valeurs des clés en double dans un tableau d'objets JavaScript ?

Linda Hamilton
Libérer: 2024-12-17 07:41:24
original
431 Les gens l'ont consulté

How to Sum Values of Duplicate Keys in a JavaScript Array of Objects?

Combinaison de valeurs de propriété de même clé dans un tableau d'objets

Étant donné un tableau d'objets JavaScript comme celui ci-dessous, comment pouvons-nous combiner dupliquer les clés en additionnant leurs valeurs correspondantes ?

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:&quot;Mon Sep 23 2013 00:00:00 GMT-0400&quot;, val:54} // <- duplicate key
]
Copier après la connexion

Notre objectif est d'obtenir un tableau avec des clés uniques et des valeurs additionnées, comme ceci :

reducedObjArr = [
    {key:&quot;Mon Sep 23 2013 00:00:00 GMT-0400&quot;, val:96},
    {key:&quot;Mon Sep 24 2013 00:00:00 GMT-0400&quot;, val:78},
    {key:&quot;Mon Sep 25 2013 00:00:00 GMT-0400&quot;, val:23}
]
Copier après la connexion

Solution utilisant Map et Reduction

Au lieu d'itérer et de pousser des valeurs, nous pouvons utiliser la puissante combinaison de map et de réduction :

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

// Convert data into a Map with reduce
const counts = objArr.reduce((prev, curr) => {
  const count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

// Map counts object back to an array
const reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value}
});

console.log(reducedObjArr); 
Copier après la connexion

Cette approche agrège et combine efficacement les valeurs avec les mêmes clés, ce qui donne le tableau réduit 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal