Maison >interface Web >js tutoriel >Comment rechercher des objets imbriqués par clé en JavaScript ?

Comment rechercher des objets imbriqués par clé en JavaScript ?

DDD
DDDoriginal
2024-11-16 08:52:03223parcourir

How to Find Nested Objects by Key in JavaScript?

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!

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