Maison >interface Web >js tutoriel >Comment regrouper un tableau d'objets par clé en JavaScript à l'aide de Lodash ou de 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!