Тут вопросы возникают по функции setActive
Что она возвращает? Если переданный source, то что означает
011 item = setActive(str,item.children);
Логичнее возвращать найденный item (null, если не найдено)
Второй вопрос. Кто устанавливает active:false для всего дерева в промежутках между поисками?
Должна ли эта функция делать это? Т.е не только устанавливать active:true для найденного и его предков, но и active:false для всех остальных?
Ну и еще замечание. При работе с деревьями лучше считать корень дерева обычным узлом. те должно быть так
tree = {
id:0,
active: false,
link: '',
children: [ // .... то, что сейчас у вас tree
]
}
|