Maison >interface Web >js tutoriel >Comment regrouper un tableau d'objets par clé en JavaScript à l'aide de Lodash ou de Plain JavaScript ?

Comment regrouper un tableau d'objets par clé en JavaScript à l'aide de Lodash ou de Plain JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-19 19:15:11914parcourir

How to Group an Array of Objects by Key in JavaScript using Lodash or Plain JavaScript?

Regrouper un tableau d'objets par clé avec Javascript et Lodash

Regrouper des objets dans un tableau en fonction d'une clé spécifique est une opération courante. Bien que Lodash fournisse une bibliothèque robuste pour gérer de telles tâches, il est également possible d'y parvenir avec du Javascript simple.

Considérez le tableau suivant d'objets de voiture :

const cars = [
    {
        'make': 'audi',
        'model': 'r8',
        'year': '2012'
    }, {
        'make': 'audi',
        'model': 'rs5',
        'year': '2013'
    }, {
        'make': 'ford',
        'model': 'mustang',
        'year': '2012'
    }, {
        'make': 'ford',
        'model': 'fusion',
        'year': '2015'
    }, {
        'make': 'kia',
        'model': 'optima',
        'year': '2012'
    },
];

L'objectif est de créer un nouveau tableau d'objets regroupés par leur propriété 'make'. En utilisant du Javascript simple, la solution suivante peut être appliquée :

var result = cars.reduce(function (r, a) {
    r[a.make] = r[a.make] || [];
    r[a.make].push(a);
    return r;
}, Object.create(null));

Ce code exploite Array#reduce pour parcourir le tableau 'cars'. Pour chaque objet, il vérifie si une entrée pour son 'make' existe dans l'objet 'result'. Sinon, il crée un nouveau tableau pour le « make » et y insère l'objet actuel. Si une entrée existe déjà, elle pousse simplement l'objet dans le tableau.

Lodash propose également un raccourci pour cette tâche :

const groupedCars = _.groupBy(cars, 'make');

La méthode _.groupBy prend un tableau et une propriété name et renvoie un nouvel objet où les clés sont les valeurs de la propriété spécifiée et les valeurs sont des tableaux des objets regroupés par cette propriété.

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