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 в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.