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

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

Barbara Streisand
Barbara Streisandoriginal
2024-11-17 19:37:01788parcourir

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

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

jQuery fournit des méthodes puissantes pour la manipulation des données, notamment la possibilité de regrouper des tableaux d'objets par propriétés communes et additionner leurs valeurs associées.

Solution

Pour réaliser ce regroupement et cette sommation avec jQuery :

  1. Parcourez le tableau d'objets à l'aide de la méthode .each().
  2. Pour chaque objet, vérifiez si la propriété Id existe déjà dans le tableau de résultats.
  3. S'il existe, incrémentez la valeur de quantité correspondante de la valeur de quantité de l'objet.
  4. Sinon, créez un nouvel objet dans le tableau de résultats avec le Propriété Id et une valeur de quantité égale à la valeur de quantité de l'objet.

Exemple de code

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

var result = [];
$.each(array, function(index, object) {
  if (!$.inArray(object.Id, result)) {
    result.push({ Id: object.Id, qty: 0 });
  }
  $.grep(result, function(value) {
    if (value.Id === object.Id) {
      value.qty += object.qty;
    }
  });
});

console.log(result);

Sortie :

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

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
Article précédent:Math.ceil et Math.floorArticle suivant:Math.ceil et Math.floor