Heim  >  Artikel  >  Web-Frontend  >  Wie erstelle ich rekursiv hierarchische Eigenschaftslisten in JavaScript?

Wie erstelle ich rekursiv hierarchische Eigenschaftslisten in JavaScript?

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 14:28:02517Durchsuche

How to Recursively Create Hierarchical Property Lists in JavaScript?

Hierarchische Eigenschaftslisten mit Rekursion erstellen

Das Durchlaufen komplexer verschachtelter Objekte zum Erstellen hierarchischer Eigenschaftslisten ist eine häufige Aufgabe in JavaScript. Bei einem Objekt mit einer möglicherweise komplexen Struktur besteht das Ziel darin, eine Liste von Eigenschaftsschlüsseln zu generieren, die die Struktur des Objekts widerspiegeln.

Um dieses Problem zu beheben, können wir eine rekursive Funktion verwenden, die das Objekt durchläuft. Hier ist eine verbesserte Version der bereitgestellten Funktion:

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));
            }
        }
    }
}

In dieser Funktion verwalten wir eine Zeichenfolge namens „stack“, die den aktuellen Pfad innerhalb des Objekts darstellt. Wenn wir auf ein Unterobjekt stoßen, hängen wir seine Eigenschaft an den Stapel an und setzen die Rekursion fort. Für primitive Eigenschaften protokollieren wir ihre Pfade und hängen sie zur Visualisierung an ein Div an.

Durch Aufrufen der Funktion „iterate“ mit dem Originalobjekt und einem leeren Anfangsstapel können wir rekursiv die gewünschte hierarchische Liste von Eigenschaftsschlüsseln erstellen .

Das obige ist der detaillierte Inhalt vonWie erstelle ich rekursiv hierarchische Eigenschaftslisten in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn