Maison >interface Web >js tutoriel >Comment puis-je regrouper des objets dans un tableau basé sur une propriété commune ?

Comment puis-je regrouper des objets dans un tableau basé sur une propriété commune ?

DDD
DDDoriginal
2024-12-23 00:35:26941parcourir

How Can I Group Objects in an Array Based on a Common Property?

Regrouper les objets par une propriété commune

Problème :

Vous disposez d'un tableau d'objets où chaque objet a un " propriété du groupe". Vous souhaitez transformer ce tableau en un nouveau tableau où les valeurs de propriété « groupe » similaires sont regroupées.

Sortie souhaitée :

myArray = [
  {group: "one", color: ["red", "green", "black"]},
  {group: "two", color: ["blue"]}
]

Solution :

  1. Créer un mappage des noms de groupes à vider arrays :
var group_to_values = {};
  1. Itérer sur le tableau d'entrée :
myArray.forEach(function (item) {
    group_to_values[item.group] = group_to_values[item.group] || [];
});
  1. Pour chaque clé du mappage, créez un objet avec le nom du groupe et un tableau de valeurs :
var groups = [];
for (var key in group_to_values) {
    groups.push({group: key, color: group_to_values[key]})
}
  1. Le tableau de groupes résultant sera regroupé par la propriété "groupe".

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