Задачи по JavaScript
Освойте основы JavaScript: замыкания, промисы, обработку событий и многое другое. Эти задачи часто встречаются на фронтенд-собеседованиях.
Контекст this в стрелочных функциях
Контекст this в конструкторах и стрелочных функциях
Функция createBase
Функция delay
Порядок выполнения промисов и setTimeout
Контекст this в callback у Array.filter
Порядок console.log с Promise и setTimeout
Реализация deep copy
Сумма с каррированием
Перемещение карточки между колонками
Замыкание в цикле (var vs let)
Группировка по ключу (groupBy)
Пересечение интервалов
Все промисы (Promise.all)
Отложенный вызов (debounce)
Доступ к полю по пути (lodash.get)
Проверка подпоследовательности
Поток сообщений по порядку
Сжать массив в диапазоны
Глубокое сравнение объектов
Декоратор повторных попыток
Асинхронный memoize с TTL
Сортировка билетов
Эмиттер событий (EventEmitter)
Очередь задач с лимитом
Кеш с вытеснением LRU
Разворачивание вложенного объекта
Разворачивание массива
Получить узлы по типу
Объединить строки с разделителем
Проверка строки на палиндром
Расчет стоимости бронирования отеля
Разность массивов
Максимум на самой глубокой вложенности
Собрать строку из объектов
Поиск строк по подстроке
Сделать первую букву слов заглавной
Рекурсивная сумма всех чисел в объекте
Сумма всех значений в дереве
Проверка на панграмму
Сложение чисел, представленных массивами
Удалить лишние повторы символов
| Статус | Название | Теги | Сложность |
|---|---|---|---|
| Контекст this в стрелочных функциях | thisarrow-functionscontextbindcall | Medium | |
| Контекст this в конструкторах и стрелочных функциях | arrow-functionsthisconstructorsclassesTinkoff | Medium | |
| Функция createBase | closuresfunctionsjavascriptTinkoff | Easy | |
| Функция delay | promisesasynctimingjavascript | Easy | |
| Порядок выполнения промисов и setTimeout | promisesevent-loopasynchronoussetTimeoutmicrotasksmacrotasksTinkoff | Medium | |
| Контекст this в callback у Array.filter | thiscontextfiltercallbackjavascriptTinkoff | Medium | |
| Порядок console.log с Promise и setTimeout | event-looppromisessetTimeoutmicrotasksmacrotasksjavascriptTinkoff | Medium | |
| Реализация deep copy | objectsrecursiondeep-clonejavascriptTinkoff | Medium | |
| Сумма с каррированием | FunctionCurryingArguments | Medium | |
| Перемещение карточки между колонками | ArrayObjectVK | Medium | |
| Замыкание в цикле (var vs let) | ClosuresAsyncWildberries | Easy | |
| Группировка по ключу (groupBy) | ArrayObjectYandex | Easy | |
| Пересечение интервалов | ArraySortingIntervalsYandex | Medium | |
| Все промисы (Promise.all) | PromiseAsyncYandexTinkoff | Medium | |
| Отложенный вызов (debounce) | FunctionTimingYandexTinkoff | Medium | |
| Доступ к полю по пути (lodash.get) | ObjectStringYandex | Medium | |
| Проверка подпоследовательности | StringTwo PointersYandex | Easy | |
| Поток сообщений по порядку | AsyncQueueYandex | Medium | |
| Сжать массив в диапазоны | ArrayStringYandexVK | Medium | |
| Глубокое сравнение объектов | ObjectRecursionOzon | Medium | |
| Декоратор повторных попыток | PromiseAsyncError HandlingOzon | Medium | |
| Асинхронный memoize с TTL | PromiseCacheAsyncOzon | Hard | |
| Сортировка билетов | ObjectGraphOzon | Medium | |
| Эмиттер событий (EventEmitter) | ClassPatternSber | Medium | |
| Очередь задач с лимитом | PromiseAsyncQueueAvito | Hard | |
| Кеш с вытеснением LRU | ClassMapDesignSber | Hard | |
| Разворачивание вложенного объекта | ObjectRecursionSberYandex | Medium | |
| Разворачивание массива | ArrayRecursionYandexAvito | Easy | |
| Получить узлы по типу | TreeRecursionYandexSberAvito | Medium | |
| Объединить строки с разделителем | StringSber | Easy | |
| Проверка строки на палиндром | StringTwo PointersVKTinkoff | Easy | |
| Расчет стоимости бронирования отеля | DateMathAvitoMail | Medium | |
| Разность массивов | ArraySetSber | Easy | |
| Максимум на самой глубокой вложенности | ArrayRecursionOzonSberMail | Medium | |
| Собрать строку из объектов | ArraySortingObjectSberTinkoffMail | Medium | |
| Поиск строк по подстроке | StringArrayAvito | Easy | |
| Сделать первую букву слов заглавной | StringRegexAvitoMail | Easy | |
| Рекурсивная сумма всех чисел в объекте | ObjectRecursionVKTinkoffAvito | Medium | |
| Сумма всех значений в дереве | TreeDFSYandexOzon | Medium | |
| Проверка на панграмму | StringSetYandex | Easy | |
| Сложение чисел, представленных массивами | ArrayMathYandexTinkoffAvito | Medium | |
| Удалить лишние повторы символов | StringTwo PointersTinkoff | Easy |