Verschachtelte Objekte anhand des Schlüssels finden
Das Navigieren in tief verschachtelten Arrays und Objekten, um einen bestimmten Wert zu finden, kann eine herausfordernde Aufgabe sein. Stellen Sie sich das Szenario vor, in dem Sie über eine komplexe Datenstruktur wie die bereitgestellte verfügen. Um ein Objekt mit einer bestimmten „id“-Eigenschaft zu finden, die mehrere Ebenen tief verschachtelt ist, können Sie die Rekursion verwenden.
Rekursive Lösung
Die bereitgestellte Funktion „getObject“ benötigt ein Objekt als Eingabe und iteriert über seine Eigenschaften. Wenn eine Eigenschaft ein Array ist, durchsucht die Funktion jedes Element rekursiv. Andernfalls prüft die Funktion, ob die Eigenschaft die gewünschte „ID“ ist, und gibt das Objekt zurück, wenn eine Übereinstimmung gefunden wird.
function getObject(theObject) { var result = null; if (theObject instanceof Array) { for (var i = 0; i < theObject.length; i++) { result = getObject(theObject[i]); if (result) { break; } } } else { for (var prop in theObject) { console.log(prop + ': ' + theObject[prop]); if (prop == 'id') { if (theObject[prop] == 1) { return theObject; } } if (theObject[prop] instanceof Object || theObject[prop] instanceof Array) { result = getObject(theObject[prop]); if (result) { break; } } } } return result; }
Diese Lösung durchläuft rekursiv die verschachtelte Datenstruktur und sucht nach dem Objekt mit der angegebenen „ID“. id'-Eigenschaft. Es verarbeitet sowohl Eigenschafts-Arrays als auch Objekte und gewährleistet so eine gründliche Suche.
Aktualisiertes Beispiel
Im aktualisierten jsFiddle (http://jsfiddle.net/FM3qu/7/ ) kann die bereitgestellte Funktion verwendet werden, um das Objekt mit der auf 1 gesetzten „id“ in der komplexen Datenstruktur zu lokalisieren.
Das obige ist der detaillierte Inhalt vonWie finde ich verschachtelte Objekte anhand des Schlüssels in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!