Как мне рекурсивно искать объект tree и вернуть соответствующий объект на основе ключа / значения с помощью JavaScript / Prototype 1.7

У меня есть данные о вложенных объектах, и я хочу выполнить поиск это и вернуть соответствующий объект на основе идентификатора.

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'}]}
        ]}
    ]}
];

Итак, я хочу сделать что-то вроде этого

getObjectByKeyValue({id: 3}) 

и вернуть его

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

Это вроде как должно быть сделано в общем, потому что у меня есть подэлементы, И подкомпоненты, которые могут каждый есть дети.

Я пробовал это с помощью Прототипа 1. 7 и не повезло - я думаю, что это просто поиск в массиве, а не в дереве с его подузлами:

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

Заранее спасибо !!!!!!

16
задан JEuvin 2 March 2016 в 16:59
поделиться