Rekursive Eigenschaftslistenkonstruktion
Um ein komplexes Objekt zu durchlaufen und eine hierarchische Liste seiner Eigenschaften zu extrahieren, sollten Sie die Verwendung einer rekursiven Funktion in Betracht ziehen. Diese Technik erfasst effektiv die verschachtelten Beziehungen innerhalb der Objektstruktur.
Unser Beispielobjekt mit seinen verschachtelten Eigenschaften dient als Beispiel:
var object = {
aProperty: {
aSetting1: 1,
aSetting2: 2,
aSetting3: 3,
aSetting4: 4,
aSetting5: 5
},
bProperty: {
bSetting1: {
bPropertySubSetting : true
},
bSetting2: "bString"
},
cProperty: {
cSetting: "cString"
}
}
Um die gewünschte Liste der Eigenschaftsschlüssel hierarchisch zu erstellen, können wir eine rekursive Funktion wie diese verwenden:
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($("").text(stack '.' property))
}
}
}
}
iterate(object, '')Diese Funktion arbeitet rekursiv, beginnend mit dem ursprünglichen Objekt und einem leeren Stapel. Während das Objekt untersucht wird, erstellt es die Stapelzeichenfolge, die den hierarchischen Pfad zu jeder Eigenschaft darstellt.
- Für Eigenschaften vom primitiven Typ protokolliert die Funktion den Eigenschaftsschlüssel und seinen Wert.
- Für Bei verschachtelten Objekten ruft sich die Funktion rekursiv auf, übergibt das verschachtelte Objekt und hängt den Eigenschaftsschlüssel an die Stapelzeichenfolge an.
Das Ergebnis ist eine Liste von Eigenschaftsschlüsseln, die die hierarchische Struktur des ursprünglichen Objekts erfasst .
Diese Lösung integriert effektiv Rekursion mit Eigenschaftsiteration und bietet einen umfassenden Ansatz zum Erstellen einer hierarchischen Liste von Objekteigenschaften.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3