Вопрос №47393 от пользователя Alexandra Ermakova в уроке «Агрегация», курс «JS: Деревья»

Alexandra Ermakova

вопрос по теории. вывела в консоль descendantCounts

 const descendantCounts = children.map((child) => getNodesCount(child));
 console.log(descendantCounts);

и не понимаю массивов, которые она выводит:

[1, 1]
[1, 1]
[3, 1, 3]

если я правильно понимаю, то [1, 1] - это потомки 'etc', а следующий [1, 1] - потомки 'bin', потому что Вызов функции на каждом ребёнке возвращает свой собственный результат. Но как из [1, 1] и [1, 1] получается [3, 1, 3]? и почему это вообще массивы? потому что map?

1 1

Sergei Melodyn

Alexandra Ermakova, приветствую.

Функция getNodesCount считает количество "детей" в дереве. Она начинает с верхнего уровня и проваливается сначала в etc, где считает количество детей: 1 файл bashrc и 1 файл consul.cfg, затем возвращает массив [1, 1], потому что обход выполнялся в map. Потом то же самое для bin. Потом читает общую сумму всех детей: (1 etc + 2 файла) + (1 hexletrc) + (1 bin + 2 файла). Итого получается 7 детей + единица за каталог верхнего уровня. Итого получается 8 нод.

4

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

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

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

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

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

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
7 июля 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
7 июля 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
7 июля 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
7 июля 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
7 июля 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
7 июля 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
7 июля 5 месяцев