Читать книгу JavaScript без угадывания. 12 разборов неожиданных результатов (Глеб Зайцев) онлайн бесплатно на Bookz (2-ая страница книги)
JavaScript без угадывания. 12 разборов неожиданных результатов
JavaScript без угадывания. 12 разборов неожиданных результатов
Оценить:

3

Полная версия:

JavaScript без угадывания. 12 разборов неожиданных результатов

const bounds = [600, 0, 600, 0];

assert.deepEqual(orderedMinutes(bounds), [0, 0, 600, 600]);

assert.deepEqual(bounds, [600, 0, 600, 0]);

const empty = [];

assert.notEqual(orderedMinutes(empty), empty);

3. Почему работает исправление

Ожидаемый вывод

4, 8, 35, 120

8, 35, 120, 4

false

Копия отделяет порядок отчёта от порядка записи, а компаратор отделяет величину числа от его написания. Повторяющиеся длительности остаются отдельными наблюдениями. Для проверки сохранения исходника используется заранее известный массив, а не другая ссылка на уже изменённый объект.

Тест пустого массива дополнительно требует новую ссылку: даже отсутствие этапов не отменяет обещания вернуть отдельный список. Не привязывайте проверки к числу или последовательности вызовов компаратора: программа задаёт итоговый порядок, но не выбирает внутренний алгоритм движка.

У сортировки отчёта два решения: критерий сравнения и массив, который разрешено менять.

Задание 3.1

Из замеров [28, 6, 103, 6] выберите два самых коротких времени. Верните [6, 6]: одинаковые результаты принадлежат разным попыткам и не удаляются. Вход — плотный массив целых минут 0–600. При одном элементе верните один, при пустом входе — пустой массив. Исходную последовательность сохраните. Выведите выбранные значения и затем исходник через запятую с пробелом.

Подсказка 3.1

Решение 3.1

Задание 3.2

Посчитайте медиану длительностей [9, 130, 7, 16], сохранив исходный порядок. После числовой сортировки при нечётной длине берётся центральное значение, при чётной — среднее двух центральных. Для этих данных ответ 12.5. Плотный вход содержит целые минуты 0–600; пустой массив даёт null. Выведите медиану и затем исходные значения через запятую с пробелом.

Подсказка 3.2

Решение 3.2

К списку разборов

Разбор 4. Вычислено ещё не значит возвращено

4. Задача и понятия

Получить новый массив из результатов callback и проверить возврат на каждом пути выполнения.

Предпосылки

Массивы, функции и return; стрелочная запись функции знакома по компаратору предыдущего разбора.

В шкафу кружка роботов нужны короткие этикетки для отделений. Исходные подписи [' drill ', 'spare cord'] должны превратиться в ['DRILL', 'SPARE CORD']: внешние пробелы убираются, латинские буквы становятся прописными. Количество и порядок подписей сохраняются. Исходный массив нужен для сверки с черновиком и не изменяется.

Вход — плотный массив строк с обычной латиницей, цифрами и пробелами. Пустой массив, пустая строка и строка из пробелов разрешены; последние две после очистки дают пустую подпись, но остаются на своих местах. Мы не измеряем длину сложных символов Unicode, не подставляем объекты вместо строк и не рассматриваем массивы с пропусками позиций.

Метод map вызывает переданную функцию для каждого элемента нашего плотного массива и собирает именно возвращённые ею значения в новый массив. Переданную функцию называют callback: её вызывает метод, а не отдельная строка нашего кода. Достаточно назвать первый параметр name, чтобы работать с текущей подписью. Сам факт вызова trim или toUpperCase ещё не сообщает map, какое значение записать в результат.

У стрелочной функции два полезных для этой задачи вида тела. После стрелки можно поставить одно выражение: его значение возвращается автоматически. Если поставить фигурные скобки, получится блок команд. Из такого блока нужное значение следует передать через return. Дойти до конца блока без return — значит вернуть undefined. JavaScript не выбирает последнее вычисленное выражение вместо автора.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Вы ознакомились с фрагментом книги.

Для бесплатного чтения открыта только часть текста.

Приобретайте полный текст книги у нашего партнера:


Полная версия книги

Всего 10 форматов

bannerbanner