Вопрос пользователя 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 0

Сергей Мелодин

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

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

0

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

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

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

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

Andrew 13 сентября 2020 →

Не до конца понимаю, почему не работает функция. Условия вроде соблюдены. https://ru.hexlet.io/codereviews/...

Павел Ким 13 сентября 2020 →

Принципиально использовать map вместо reduce? С reduce и _.sum не нужен будет, он ведь и нужен для агрегаци...

Msh Ker 25 августа 2020 →

Не знал что можно в map передать просто имя функции и она сама будет вызываться к кж элементу const descend...

Иван Битвинас 30 июня 2020 →

Здравствуйте! У меня ступор https://ru.hexlet.io/code_reviews/285103 Я понимаю, что у меня считаются все фа...

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

Здравствуйте, сижу уже часа 2 и вообще не могу понять, почему не проходит проверка https://ru.hexlet.io/cod...