Maison > interface Web > js tutoriel > Comment puis-je regrouper efficacement un tableau d'objets par clés imbriquées à l'aide de Lodash ?

Comment puis-je regrouper efficacement un tableau d'objets par clés imbriquées à l'aide de Lodash ?

Mary-Kate Olsen
Libérer: 2024-12-07 06:13:12
original
549 Les gens l'ont consulté

How Can I Efficiently Group an Array of Objects by Nested Keys Using Lodash?

Regroupement d'un tableau d'objets par imbrication de clés avec des noms spécifiques

Cette requête cherche à modifier un tableau d'objets en les regroupant en fonction de critères spécifiques noms de clés, produisant une sortie souhaitée avec des objets imbriqués.

Pour ce faire, une fonction personnalisée appelée groupAndMap est utilisée. Il utilise une combinaison de _.map et _.groupBy de la bibliothèque Lodash. Voici un aperçu de son fonctionnement :

function groupAndMap(items, itemKey, childKey, predic){
    return _.map(_.groupBy(items,itemKey), (obj,key) => ({
        [itemKey]: key,
        [childKey]: (predic && predic(obj)) || obj
    }));
}
Copier après la connexion
  • La fonction prend quatre paramètres : items (le tableau à regrouper), itemKey (la clé à regrouper), childKey (le nom de la propriété du objet imbriqué) et predic (une fonction de prédicat facultative qui peut être utilisée pour modifier les objets imbriqués).
  • Il applique _.groupBy au tableau items à l'aide de itemKey, regroupant les objets en tableaux en fonction de leur itemKey.
  • À l'aide de _.map, chaque objet du tableau groupé est converti en un nouvel objet avec deux propriétés : [itemKey] et [childKey].
  • Le prédic Le paramètre, s’il est fourni, permet une personnalisation plus poussée des objets imbriqués. Il est appliqué au tableau d'objets pour chaque itemKey avant de l'attribuer à la propriété [childKey].

Pour créer la sortie imbriquée souhaitée, la fonction est utilisée deux fois dans l'extrait de code :

var result = groupAndMap(items,"tab","sections", 
                   arr => groupAndMap(arr,"section", "items"));
Copier après la connexion

Le premier appel regroupe les objets par la touche "tab", résultant en un tableau d'objets avec les propriétés "tab" et "sections". L'appel zweite regroupe ensuite les objets dans chaque section par la touche "section", produisant la sortie imbriquée souhaitée où les objets sont regroupés par "onglet" puis par "section".

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