PRO курс

JS: Деревья

1625 сообщений в сообществе 2361 учащихся

Этот курс посвящен знакомству с одной из наиболее часто используемых структур данных - деревьям

Последнее обновление: 07 апреля 2020

Подготовительный курс

JS: Функции

Уроки курса

Испытания

Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки.

Автор

Аватар пользователя Kirill Mokevnin

Кирилл Мокевнин

Сооснователь и CEO образовательного проекта Хекслет. Программирую с 2007 года. За это время прошёл путь от разработчика до технического директора и управляющего отдельным подразделением (филиалом). Управлял командами, в которых больше 50 разработчиков.

  • Программирую на языках: Elixir, Clojure, JavaScript, PHP, Ruby.
  • Соорганизатор конференции Nastachku.ru.
  • Вимер.
  • Топлю за DevOps и автоматизированные тесты.

Впечатления

ДА! Пройдено. Я никогда так не радовался! Думал что сейчас будет жесть в финале, а оказалось что она уже была! Курс заставляет шестеренки крутиться. Прекрасный курс, спасибо Хекслет!

Добрый день. Не ожидал, что в итоге данный курс мне так понравится. Особенно после первого задания, над которым просидел наверное пол дня, а мотивация в этот момент пробила дно и устремилась в бездну. Но чем дальше шел по курсу, тем становилось легче, в целом приходило понимание разных аспектов (где-то инстинктивно напрашивался дестракчеринг (как в sort в последнем задании), а где-то понимание, что нужно проще и не писать много лишнего кода). А последнее задание вообще было решено идентично учительскому. Вообщем спасибо за курс!

Добрый день. Курс очень понравился. Задания заставляли подумать, отработать функции высшего порядка по-новому и попрактиковаться в destructuring assignment. Спасибо за интересные темы и задания.

Задачку решила, сначала с костылями (хотя и этому было крайне рада), потом глянула учительское решение, попыталась разобраться.

Основная сложность для меня была в том, чтобы понять, какие данные должны накапливать два разных аккумулятора. Догадка была такой: асс - собирает массив из путей к нужному файлу, которые потом преобразуются в строку, а newAcc - собирает эти массивы (превращающиеся в строку) в один массив.

А оказалось, что оба аккумулятора должны собирать одни и те же данные (массив строк с путями), которые будут друг другу передавать. Красиво и просто.

Еще были проблемы с undefined, которые приходилось отдельно фильтровать. Возникали они потому, что я проверяла только непустые папки, а при редьюсе на месте пустых возникал undefined.

Отличная задачка! Спасибо!

В начале как это часто тут бывает ничего не было понятно. Не могла понять, какие объекты нужно возвращать и как их записать, чтобы сохранить структуру. Склонялась то к reduce и map (хотя очевидно, что можно использовать то и другое).

Пришла к тому, что основные преобразования должны происходить внутри главной части функции, а map или reduce должны нам возвращать массив, внутри которого рекурсивный вызов функции с переданным в него объектом. Результат работы map или reduce нужно передать в свойство children итогового возвращаемого объекта. Чтобы возвратить остальные свойства объекта можно воспользоваться или destructuring assigment для объекта (как я сначала сделала) или ...spread, как я поняла после просмотра решения учителя.

Моё решение.

Курс JS: Деревья
продолжительность
22 часа
награда
57 баллов