Maison >interface Web >js tutoriel >Comment regrouper et additionner un tableau d'objets par une propriété à l'aide de jQuery ?

Comment regrouper et additionner un tableau d'objets par une propriété à l'aide de jQuery ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-17 07:51:03542parcourir

How to Group and Sum an Array of Objects by a Property Using jQuery?

Regroupement et addition d'un tableau d'objets par une propriété

Problème

Étant donné un tableau d'objets, votre objectif est de les regrouper par un spécifique propriété, telle que Id, et calculez la somme d'une autre propriété, telle que quantité, pour chaque groupe à l'aide de jQuery.

Exemple

Considérez le tableau d'entrée suivant :

var array = [
  { Id: "001", qty: 1 },
  { Id: "002", qty: 2 },
  { Id: "001", qty: 2 },
  { Id: "003", qty: 4 }
];

Le résultat souhaité est :

[
  { Id: "001", qty: 3 },
  { Id: "002", qty: 2 },
  { Id: "003", qty: 4 }
]

Solution

Pour regrouper le tableau par ID et additionner les valeurs de quantité pour chaque groupe à l'aide de jQuery, vous pouvez utiliser l'approche suivante :

$(array).groupBy('Id').reduce(function (res, obj) {
  return res + obj.qty;
}, 0);

Voici un aperçu de la solution :

  • groupBy Plugin de jQuery : Ce plugin regroupe le tableau d'objets en fonction de la propriété spécifiée, Id. Il renvoie un objet avec des clés de propriété correspondant aux valeurs d'ID uniques.
  • Méthode de réduction de jQuery : Cette méthode parcourt l'objet groupé et applique la fonction de rappel spécifiée pour calculer la somme des valeurs de quantité. pour chaque groupe. Dans ce cas, la fonction de rappel ajoute simplement la propriété qty de chaque objet à l'accumulateur.

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