boucle à travers un objet (arbre) de manière récursive
Est-il un moyen (en jQuery ou JavaScript) pour faire une boucle dans chaque objet et ce sont les enfants et petits-enfants et ainsi de suite?
Si si... je peux aussi lire leur nom?
Exemple:
foo :{
bar:'',
child:{
grand:{
greatgrand: {
//and so on
}
}
}
}
de sorte que la boucle doit faire quelque chose comme ça...
loop start
if(nameof == 'child'){
//do something
}
if(nameof == 'bar'){
//do something
}
if(nameof =='grand'){
//do something
}
loop end
- objet-clés et de-boucle - des différences de détails ici
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour le
for...in
boucle:Être conscient que
for...in
boucles itérer sur toutes les propriétés énumérables, y compris ceux qui sont ajoutés pour le prototype d'un objet. Pour éviter d'agir sur ces propriétés, vous pouvez utiliser lehasOwnProperty
méthode pour vérifier si la propriété n'appartient qu'à cet objet:Exécution de la boucle récursive peut être aussi simple que d'écrire une fonction récursive:
(a = {})._ = a
// do something
avant de faire appel à eachRecursive() de l'objet Date, sinon, cette mise en œuvre sauté au-dessus d'eux. Les Dates sont des objets afin de eachRecursive() est appelée, mais dans ce cas, vous ne voulez pas vraiment de manière récursive. C'est ce que j'ai trouvé lors de l'utilisation de ce.Si vous voulez revenir un arbre de relations, vous pouvez utiliser l'Objet.les touches de manière récursive.
JS:
Vous pouvez avoir une fonction récursive avec une fonction d'analyse construit à l'intérieur d'elle.
- Je utiliser le
foo
objet de l'OP, voici comment cela fonctionneJS: