¿Cómo busco recursivamente un árbol de objetos y devuelvo el objeto coincidente basado en una clave / valor usando JavaScript / Prototype 1.7
Tengo algunos datos de objetos anidados y quiero buscarlos y devolver el objeto coincidente basado en la identificación.
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'}]}
]}
]}
];
Así que quiero hacer algo como esto
getObjectByKeyValue({id: 3})
y que regrese
{id: 3, name: 'Template 3'}
Tiene que hacerse de forma genérica porque tengo subItems y subcomponentes que podrían tener hijos.
Intenté esto usando Prototype 1.7 y no tuve suerte. Creo que esto solo busca una matriz, y no un árbol con sus subnodos:
data.find(function(s){return s.id == 4;})
¡¡¡¡¡¡Gracias por adelantado!!!!!