Recherche de propriétés lodash dans un tableau et dans des tableaux enfants imbriqués
J'ai ce tableau:
[
{
id: 1,
name: 'test 1',
children: []
},
{
id: 2,
name: 'test 2',
children: [
{
id: 4,
name: 'test 4'
}
]
},
{
id: 3,
name: 'test 3',
children: []
}
]
Comment puis-je filtrer par le id
propriété dans ce tableau et imbriquée children
tableaux?
Par exemple, une recherche pour id = 3
doit retourner le test 3
objet, et la recherche de id = 4
doit retourner le test 4
objet.
source d'informationauteur Mirza Delic
Vous devez vous connecter pour publier un commentaire.
À l'aide de lodash, vous pouvez faire quelque chose comme ceci:
Ici, thru() est utilisé pour initialiser la enveloppé valeur. C'est le retour de l'union du tableau d'origine, et la imbriqués les enfants. Cette structure du tableau est ensuite aplatie à l'aide de aplatir()de sorte que vous pouvez trouver() l'élément.
C'est très simple l'arbre transversal tâche. La meilleure façon de le résoudre est de la récursivité (lien vers jsbin). Il fonctionne avec n'importe quel profondeur (avec limite de la récursivité, bien sûr) et c'est l'un des moyens les plus rapides avec le pire de complexité O(n):
Mise à jour:
Pour trouver tous les matches un peu modifié la fonction (jsbin lien ci-dessus est mis à jour):
Un autre
lodash
option avec les enfants de la clé et un nombre illimité de niveaux de profondeur.