курс

JS: Деревья

3491 студент 2385 сообщений
Курс JS: Деревья
продолжительность
10 часов
награда
65 баллов

Множество окружающих нас вещей, в мире компьютеров, имеют древовидную структуру. Например, категории товаров, файловая система, исходный код, комментарии, HTML, XML, JSON и так далее. Подобные структуры имеют общую черту – они рекурсивны по своей природе. То есть любая внутренняя часть может стать полноценной внешней. Любой кусок JSON сам по себе JSON. Этот факт сильно влияет на способ организации и принципы работы с такими структурами. Для них вовсю используется древовидная рекурсия, которая требует хорошей подготовки.

Чему вы научитесь:

  • Разбираться в принципах устройства и построении деревьев
  • Представлять в коде и обрабатывать данные имеющие рекурсивную природу, например файловую систему, каталоги или деревья комментариев
  • Строить абстракции поверх древовидных структур данных
  • Использовать функциональную парадигму
рекурсивные структуры данных обход в глубину древовидная рекурсия файловая система
Последнее обновление: 19 июня 2021

Уроки курса

Испытания

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

Впечатления

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

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

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

Прошел Курс!

Очень качественно преподнесен материал, даже неожиданно (:, т.к. в предыдущих курсах возникали вопросы, но на них я получал всегда ответы. Здесь кроме вопроса про path.join по сути не возникло ни одного вопроса.

Все уроки были на одной волне.

Если темы: функции, массивы, объекты усвоены на отлично, этот курс залетает со свистом.

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

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

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

Моё решение.

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

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

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

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

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

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

Разработка бэкенд-компонентов веб-приложений
4 августа 8 месяцев