Показать сообщение отдельно
  #3 (permalink)  
Старый 11.12.2020, 08:28
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,751

Тут вопросы возникают по функции setActive
Что она возвращает? Если переданный source, то что означает

011 item = setActive(str,item.children);


Логичнее возвращать найденный item (null, если не найдено)

Второй вопрос. Кто устанавливает active:false для всего дерева в промежутках между поисками?
Должна ли эта функция делать это? Т.е не только устанавливать active:true для найденного и его предков, но и active:false для всех остальных?

Ну и еще замечание. При работе с деревьями лучше считать корень дерева обычным узлом. те должно быть так

tree = {
id:0,
active: false,
link: '',
children: [ // .... то, что сейчас у вас tree
]
}
Ответить с цитированием