Вопрос №30857 от пользователя Nikita Kostichev в уроке «Обход дерева», курс «JS: Деревья»

Nikita Kostichev

Не понял как после этой строки

return { ...node, name: node.name.toLowerCase() };

функция дальше двигается по дереву. Помогите разобраться.

3 0

Nikita Mikhaylov

Здравствуйте

Обратите внимание, что эта строчка выполняется, когда наша нода не является директорией, то есть не содержит дочерних элементов. Так как мы используем рекурсию, то этот результат вернётся в ту часть рекурсии, где была вызвана и добавиться в объект. Здесь действует тот же принцип, что и в теории урока, только тип данных отличается

0

Nikita Kostichev

Спасибо! Стало понятнее! Но теперь возник вопрос по теории:

Так как первый ребёнок уже был посещён, второй рекурсивный вызов заходит в узел F и выполняет там свою работу.

Откуда рекурсивному вызову "известно" что первый ребёнок уже был посещён?

0

Nikita Mikhaylov

Мы последовательно проходимся по всем дочерним элементам с помощью map, именно поэтому можно гарантировать, что ни один ребёнок не будет пропущен

0

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг».

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия

Фронтенд-разработчик

Разработка фронтенд-компонентов веб-приложений
4 августа 8 месяцев
Иконка программы Python-разработчик
Профессия

Python-разработчик

Разработка веб-приложений на Django
4 августа 8 месяцев
Иконка программы PHP-разработчик
Профессия

PHP-разработчик

Разработка веб-приложений на Laravel
4 августа 8 месяцев
Иконка программы Node.js-разработчик
Профессия

Node.js-разработчик

Разработка бэкенд-компонентов веб-приложений
4 августа 8 месяцев
Иконка программы Верстальщик
Профессия

Верстальщик

Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия

Java-разработчик

Разработка приложений на языке Java
4 августа 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
NEW

Разработчик на Ruby on Rails

Создает веб-приложения со скоростью света
4 августа 5 месяцев

Похожие вопросы

Kostya Pershin 10 июня 2021 →

Добрый день, не могу понять, почему выдает ошибку: https://ru.hexlet.io/code_reviews/414845 Буду благодарен...

alex_de_suzo 11 апреля 2021 →

https://ru.hexlet.io/codereviews/395669?submissionid=503920 подскажите п-ста почему в 16 строке не срабатыв...

Виталий Кондрацкий 28 марта 2021 →

Здравствуйте, почему ошибка на .cloneDeep https://ru.hexlet.io/codereviews/390598 ? там же всего один объек...

Dimon 19 февраля 2021 →

https://ru.hexlet.io/code_reviews/376576 Здравствуйте. Подскажите плиз что не так?

oksana_ 13 февраля 2021 →

Здравствуйте! Подскажите, пожалуйста, почему в примере из теории dfs вызывается без аргументов: const dfs...