Comment puis-je rechercher récursivement une arborescence d'objets et renvoyer l'objet correspondant en fonction d'une clé / valeur en utilisant JavaScript / Prototype 1.7

J'ai quelques imbriqués les données de l'objet et je veux de recherche et de retour de l'objet correspondant en fonction de l'id.

var data = [{id: 0, name: 'Template 0', subComponents:[
        {id: 1, name: 'Template 1', subItems:[
            {id: 2, name: 'Template 2', subComponents:[{id: 3, name: 'Template 3'}], subItems: [{id: 4, name: 'Template 4'}]}
        ]}
    ]}
];

Donc, je veux faire quelque chose comme ceci

getObjectByKeyValue({id: 3}) 

et de l'avoir de retour

{id: 3, name: 'Template 3'}

C'est une sorte de doit être fait de manière générique, parce que j'ai des sous-éléments, ET les sous-composants qui peuvent avoir chacun des enfants.

J'ai essayé cette aide d'un Prototype de 1,7 et pas de chance - je pense que cette fouille un tableau, et pas un arbre, avec ses sous-nœuds:

data.find(function(s){return s.id == 4;})

Merci d'avance!!!!!!

source d'informationauteur Devin McQueeney