Everlasting Summer Posted July 25, 2022 Share Posted July 25, 2022 (edited) Список лекций: Открытие Школ и Лектория Инструменты разработки Git Асинхронность Node.JS React Продвинутый React Построение React-приложения Тесты: Модульное тестирование, Интеграционное тестирование интерфейсов Типизация Инфраструктура Продвинутый JS Лекции, которые будут добавлены позже: Сборка Performance Разбор домашнего задания по лекции Продвинутый JS Функциональное программирование Локализация Разбор домашнего задания по лекции Сборка Интенсив тренировки по алгоритмам Ярмарка вакансий по направлениям + выкладываем тестовое задание на контесте Навыки публичных выступлений Общая встреча с руководителями и выпускниками Weekend offer Открытие Школ и Лектория Инструменты разработки Git Асинхронность Домашнее задание: Где-то в параллельной вселенной всё асинхронное, даже массивы... Внутри асинхронного массива может храниться либо число, либо другой асинхронный массив, а взаимодействие происходит через два метода: type Elem = AsyncArray | number; type AsyncArray = { // получить элемент по индексу read(index: number, callback: (elem: Elem) => void): void; // Получить количество элементов в массиве size(callback: (size: number) => void): void; } Напишите функцию, которая сделает из вложенного асинхронного массива простой плоский массив и сохранит порядок элементов Надо учесть, что, иногда, методы срабатывают с ошибкой и вместо результата возвращают null Кроме того, операции асинхронные и занимают какое-то время, поэтому надо придумать что-то более оптимальное, чем последовательно читать каждый следующий элемент в массиве... Формат ввода Объект AsyncArray: AsyncArray([ 8, AsyncArray([ 15, 16, ]), AsyncArray([ AsyncArray([ AsyncArray([ 42, AsyncArray([ AsyncArray([]), 23, ]), ]), ]), 4, ]), ]) Формат вывода Массив чисел: [8, 15, 16, 42, 23, 4] Примечания Задачу требуется решить на JavaScript (ES2017) и оформить решение по шаблону: module.exports = async function (input) { // основная функция return answer; } // вспомогательные функции Если после нескольких посылок вердикт по решению — IL, скорее всего, решение работает слишком медленно. Вы же помните, что не все await одинаково полезны? Песочницу для решения можно загрузить по ссылке: playground.js Node.JS React Продвинутый React Построение React-приложения Тесты: Модульное тестирование, Интеграционное тестирование интерфейсов Типизация Домашнее задание: Домашнее задание к лекции расположено в этом репозитории https://github.com/nikalexxx/ts-homework Разбор домашнего задания: Инфраструктура Продвинутый JS Домашнее задание к лекции "Продвинутый JS" Напишите свою реализацию Set, почти как в ES6 (см. playground (YetAnotherSet).js) Примечания В коде решения запрещено использовать встроенные Set и Map Решение должно работать на ES 2019 (Node 12) и его требуется оформить по шаблону: module.exports = YetAnotherSet function YetAnotherSet (iterator = []) { // основная функция // ... } // вспомогательные функции // ... Песочницу для решения можно загрузить по ссылке: playground (YetAnotherSet).js Edited August 21, 2022 by Бесконечное лето Link to comment Share on other sites More sharing options...
Recommended Posts