Вебсправочник
Справочник JavaScript

Math.min() и Math.max(): границы набора значений

Math.min и Math.max выбирают минимальное и максимальное значения из переданных аргументов.

Назначение

Math.min и Math.max выбирают минимальное и максимальное значения из переданных аргументов.

Как это работает

Для небольшого массива значения можно передать через spread. Пустой набор даёт Infinity у min и -Infinity у max. Наличие NaN распространяется на результат.

Пример

const sizes=[12,8,20];
console.assert(Math.min(...sizes)===8);
console.assert(Math.max(...sizes)===20);
console.assert(Math.min()===Infinity);
console.assert(Number.isNaN(Math.max(1,NaN)));

Что должно получиться

Минимум и максимум найдены, а специальные случаи не маскируются под ноль. Такое различие помогает не показывать выдуманное значение для пустой выборки.

Граница применения и частая ошибка

Не разворачивайте очень большие массивы в аргументы функции: среда ограничивает их количество. Для больших наборов используйте последовательный проход и заранее определённое поведение пустого списка.

Самостоятельная проверка

Проверьте обычный набор, пустой набор и набор с NaN. Затем напишите проход для поиска максимума, явно обрабатывая отсутствие элементов.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.