Этот курс посвящен конкретным приемам в работе с коллекциями, которые используются в языке JavaScript, а также изучению основных типов данных: массивов, ассоциативных массивов и множеств. В течение курса изучаются темы техники мемоизации, ленивых вычислений, использования функций высшего порядка, так называемых spread- и rest-операций и техник разрушающих присваиваний.
Чему вы научитесь:
- Представлять данные в виде множеств с помощью Set
- Использовать Map для создания словарей
- Создавать ленивые коллекции для уменьшения количества проходов
- Мемоизировать вызовы функций для оптимизации производительности
Уроки курса
-
5
Fluent interface
Познакомиться с паттерном проектирования "fluent interface". -
6
Неизменяемость
Рассмотреть одну важную особенность — «неизменяемость», которая нужна нам для исправления некоторых важных недостатков реализации fluent-интерфейса. -
7
Ленивые вычисления
Познакомиться с так называемыми «ленивыми» вычислениями — способом оптимизации. Рассмотреть эту особенность языка в контексте работы с коллекциями в JavaScript. -
8
getter и мемоизация
Познакомиться с возможностью языка JavaScript, которая позволяет создавать динамические свойства. -
9
Операция rest
Рассмотреть интересную особенность, позволяющую передавать разное количество параметров в функцию. -
10
Операция spread
Рассмотреть «другую сторону» операции rest — операцию spread. -
11
Дестракчеринг
Познакомиться с возможностью JavaScript, которая позволяет извлекать данные из массивов или объектов способом, схожим с объявлением массива в объекте.
Испытания
Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки.
# | Задание | % завершений |
---|---|---|
1 | Нечетное количество | 93% |
2 | Сборщик строки запроса | 95% |
3 | Поиск ближайшего соседа | 91% |
4 | NRZI кодирование | 87% |
5 | Увеличение двумерного массива | 91% |
6 | Пересечение массивов | 97% |
7 | Найди отличия | 97% |
8 | Нормализация данных | 83% |
9 | Представление массива в виде объекта | 97% |
10 | Исключаем лишних | 97% |
11 | Чанкование | 91% |
Автор
Сооснователь и CEO образовательного проекта Хекслет. Программирую с 2007 года. За это время прошёл путь от разработчика до технического директора и управляющего отдельным подразделением (филиалом). Управлял командами, в которых больше 50 разработчиков.
- Программирую на языках: Elixir, Clojure, JavaScript, PHP, Ruby.
- Соорганизатор конференции Nastachku.ru.
- Вимер.
- Топлю за DevOps и автоматизированные тесты.
Впечатления
Метод arr.indexOf(value) можно "хитро" использовать для проверки дублирующихся значений
Получил моральное удовлетворение от правильного решения этого задания, действительно "хитро")))
Спасибо команде Hexlet за интересную подачу материала!!!
Секс не идет ни в какое сравнение с тем, что ты, порой, испытываешь после прошедшего проверку решения, на которое ты вышел спустя много времени, пробы и ошибки)
Решила без использования третьей подсказки, надеюсь, не критично.
Спасибо за курс, он просто отличный, заставил здорово поскрипеть мозгами и позаниматься самобичеванием на тему "я слишком глуп для программирования" :)
Yeeeee boy. Классная задачка, часа 2 решал. Но решение, естественно, не такое крутое как у учителя.
Из всех пройденных курсов , оказалась самая трудная задача. Два дня просидел, мозг просто взрывался! При чем алгоритм был понятен: нужно в operatins добавить либо уже почти готовые функции, либо из входящих объектов делать функции. Первое было легко. Второе вроде тоже понятно: взять ключи, и по ключам сравнить объект "машину" и входящий объект. Но как сюда воткнуть every - оказалось полным авралом) Синтаксис есть, пример есть, функцию можно применять только к массивам понятно, но к каким элементам и как ее вставлять сюда не понятно))) ДВА ДНЯ ПРОСИДЕЛ!)Возненавидел себя за тупость, возненавидел весь мир!)И как же мне полегчало и стало на душе хорошо :DD, когда увидев здесь единственный нужный комментарий, я все таки решил, и решение оказалось ну прям как у учителя только через reduce!)
Спасибо!