Rechercher des objets imbriqués par clé
Parcourir des tableaux et des objets profondément imbriqués pour trouver une valeur spécifique peut être une tâche difficile. Considérez le scénario dans lequel vous disposez d'une structure de données complexe comme celle fournie. Pour localiser un objet avec une propriété 'id' spécifique imbriquée à plusieurs niveaux, vous pouvez utiliser la récursivité.
Solution récursive
La fonction fournie, 'getObject', prend un objet en entrée et parcourt ses propriétés. Si une propriété est un tableau, la fonction recherche récursivement chaque élément. Sinon, la fonction vérifie si la propriété correspond à « l'identifiant » souhaité et renvoie l'objet si une correspondance est trouvée.
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; }
Cette solution parcourt de manière récursive la structure de données imbriquée, recherchant l'objet avec le 'spécifié'. propriété id. Il gère à la fois les tableaux de propriétés et les objets, garantissant une recherche approfondie.
Exemple mis à jour
Dans le jsFiddle mis à jour (http://jsfiddle.net/FM3qu/7/ ), la fonction fournie peut être utilisée pour localiser l'objet avec 'id' défini sur 1 dans la structure de données complexe.
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!