Nikita Kostichev

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

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

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

3 0

Nikita Mikhaylov

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

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

0

Nikita Kostichev

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

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

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

0

Nikita Mikhaylov

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

0

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

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

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

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

Егор Бродунов 20 июня 2020 →

Здравствуйте, не совсем понимаю, почему у меня директория преобразуется к нижнему регистру, если у меня сто...

Константин Лозовский 19 июня 2020 →

Доброго дня. Не совсем понимаю, откуда ошибка type error. Проверил children, выводит, как и надо массив. В ...

Aziz Apsalyamov 27 мая 2020 →

Здравствуйте. Вопрос по теории. Функция changeOwner должна менять имя владельца у файлов и директорий в дер...

Denis 22 мая 2020 →

Добрый день! Для чего делать клон метаданных, если они не меняются?

Denis Bondarenko 10 мая 2020 →

Приветствую! У меня VS code выбрасывает ошибку, подскажите в чем проблема?Скрин https://github.com/denbon05...