Maison > interface Web > js tutoriel > Comment additionner les valeurs de propriétés d'objet avec des clés partagées en JavaScript ?

Comment additionner les valeurs de propriétés d'objet avec des clés partagées en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-14 17:18:18
original
252 Les gens l'ont consulté

How to Sum Object Property Values with Shared Keys in JavaScript?

Somme des valeurs de propriétés d'objet avec des clés partagées en JavaScript

Considérez le tableau d'objets JavaScript suivant :

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
];
Copier après la connexion

Le but est de fusionner les clés en double en additionnant leurs valeurs val correspondantes, ce qui donne un tableau comme ceci :

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},
];
Copier après la connexion

Pour y parvenir, une solution robuste employant les méthodes de réduction et de mappage peut être utilisée :

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};
});
Copier après la connexion

Cette approche crée d'abord une carte en utilisant réduire, où chaque clé représente une clé unique du tableau d'origine et la valeur correspondante est la somme de toutes les valeurs val avec la même clé.

Enfin, la méthode map est invoquée sur la carte des comptes pour la convertir dans un tableau d'objets avec les valeurs fusionnées souhaitées. La sortie de ce code est le réduitObjArr, qui contient les valeurs fusionnées et additionnées selon les besoins.

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