Maison >interface Web >js tutoriel >Comment créer de manière récursive des listes de propriétés hiérarchiques en JavaScript ?

Comment créer de manière récursive des listes de propriétés hiérarchiques en JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-20 14:28:02598parcourir

How to Recursively Create Hierarchical Property Lists in JavaScript?

Création de listes de propriétés hiérarchiques avec récursion

Parcourir des objets imbriqués complexes pour construire des listes de propriétés hiérarchiques est une tâche courante en JavaScript. Étant donné un objet avec une structure potentiellement complexe, l'objectif est de générer une liste de clés de propriété qui reflète la structure de l'objet.

Pour résoudre ce problème, nous pouvons utiliser une fonction récursive qui traverse l'objet. Voici une version améliorée de la fonction fournie :

function iterate(obj, stack) {
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            if (typeof obj[property] == "object") {
                iterate(obj[property], stack + '.' + property);
            } else {
                console.log(property + "   " + obj[property]);
                $('#output').append($("<div>").text(stack + '.' + property));
            }
        }
    }
}

Dans cette fonction, nous maintenons une chaîne appelée « pile » qui représente le chemin actuel dans l'objet. Lorsque nous rencontrons un sous-objet, nous ajoutons sa propriété à la pile et poursuivons la récursion. Pour les propriétés primitives, nous enregistrons et ajoutons leurs chemins à un div pour la visualisation.

En appelant la fonction « itérer » avec l'objet d'origine et une pile initiale vide, nous pouvons construire de manière récursive la liste hiérarchique souhaitée des clés de 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!

Déclaration:
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