Maison > interface Web > js tutoriel > Comment puis-je regrouper un tableau d'objets par une propriété spécifique et consolider d'autres propriétés dans des tableaux ?

Comment puis-je regrouper un tableau d'objets par une propriété spécifique et consolider d'autres propriétés dans des tableaux ?

Mary-Kate Olsen
Libérer: 2024-12-15 12:08:14
original
466 Les gens l'ont consulté

How can I group an array of objects by a specific property and consolidate other properties into arrays?

Regroupement des éléments du tableau par propriété d'objet

Étant donné un tableau d'objets avec des propriétés de groupe et de couleur, l'objectif est de regrouper les éléments par leurs valeurs de groupe, en consolidant la couleur valeurs pour chaque groupe.

Problème

Le tableau fourni ressemble à ceci :

myArray = [
  {group: "one", color: "red"},
  {group: "two", color: "blue"},
  {group: "one", color: "green"},
  {group: "one", color: "black"}
]
Copier après la connexion

Le résultat souhaité est un tableau comme celui-ci :

myArray = [
  {group: "one", color: ["red", "green", "black"]},
  {group: "two", color: ["blue"]}
]
Copier après la connexion

Solution

  1. Créer une carte des noms de groupe en valeurs : Utilisez la méthode réduire() pour créer un mappage des noms de groupe vers des tableaux de couleurs.
  2. Transformer au format souhaité : Créez un nouveau tableau en parcourant les clés de la carte et en créant un objet pour chaque groupe, avec sa propriété de groupe définie sur la clé et sa propriété de couleur définie au tableau de couleurs associé à cette clé.

Vous trouverez ci-dessous une implémentation JavaScript :

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

var group_to_values = myArray.reduce(function (obj, item) {
    obj[item.group] = obj[item.group] || [];
    obj[item.group].push(item.color);
    return obj;
}, {});

var groups = Object.keys(group_to_values).map(function (key) {
    return {group: key, color: group_to_values[key]};
});

console.log("groups:");
console.log(JSON.stringify(groups, null, 4));
Copier après la connexion

Ce code crée la sortie souhaitée, avec les éléments regroupés par leur propriété de groupe et leurs valeurs de couleur consolidées dans des tableaux.

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