Maison >interface Web >js tutoriel >Comment puis-je regrouper efficacement des objets JavaScript par clé à l'aide de Lodash ou de JavaScript simple ?
Regrouper des objets par clé avec JavaScript et Lodash
Regrouper des objets en fonction d'une clé spécifique est une tâche courante lorsque l'on travaille avec des tableaux de données. En regroupant des objets qui partagent une propriété commune, nous pouvons les organiser et y accéder plus efficacement.
Une façon d'y parvenir en JavaScript simple consiste à utiliser la méthode Array#reduce. L'extrait de code suivant illustre comment :
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' }]; const result = cars.reduce(function (r, a) { r[a.make] = r[a.make] || []; r[a.make].push(a); return r; }, {}); console.log(result);
Ce code utilise la propriété make comme clé de regroupement. Il parcourt la gamme de voitures et crée un nouvel objet avec des clés correspondant aux valeurs de marque uniques. Pour chaque marque, il crée ou ajoute un tableau d'objets de voiture partageant cette marque.
Lodash fournit également un moyen concis de regrouper des objets à l'aide de la fonction _.groupBy :
import { groupBy } from 'lodash'; const grouped = groupBy(cars, 'make');
Le groupBy La fonction prend deux arguments : le tableau d’objets et la propriété par laquelle regrouper. Il renvoie un nouvel objet avec des clés correspondant aux valeurs uniques de la propriété spécifiée et des valeurs correspondant à des tableaux d'objets partageant cette valeur.
En regroupant les objets par clé, nous pouvons facilement accéder aux données associées et effectuer des opérations sur groupes d'objets ayant des caractéristiques similaires. Cette technique est particulièrement utile pour optimiser la récupération, le filtrage et la visualisation des données.
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!