Минимальное и максимальное значение в JavaScript
- Math.min()
- Math.max()
- Минимум и максимум в массиве
- Ограничение значения диапазоном
- Если массив пустой
- Итого
Иногда в коде нужно найти самое маленькое или самое большое число: минимальную цену, максимальный балл, нижнюю и верхнюю границу значения.
Для этого в JavaScript есть методы Math.min() и Math.max().
console.log(Math.min(10, 3, 25));
console.log(Math.max(10, 3, 25));
Результат:
3
25
Math.min()
Math.min() возвращает минимальное число из переданных значений.
let minPrice = Math.min(1200, 800, 1500);
console.log(minPrice);
Результат:
800
Методу можно передавать не только готовые числа, но и переменные.
let first = 15;
let second = 9;
let third = 22;
console.log(Math.min(first, second, third));
Результат:
9
Math.max()
Math.max() возвращает максимальное число из переданных значений.
let maxScore = Math.max(72, 91, 84);
console.log(maxScore);
Результат:
91
Так удобно искать наибольшее значение среди нескольких вариантов.
let width = 640;
let minWidth = 320;
console.log(Math.max(width, minWidth));
Результат:
640
Здесь результат не будет меньше 320, потому что Math.max() выберет большее число.
Минимум и максимум в массиве
Методы Math.min() и Math.max() ждут отдельные числа, а не массив.
let numbers = [5, 12, 3, 18];
console.log(Math.min(numbers));
Результат:
NaN
Чтобы передать значения массива как отдельные аргументы, используют оператор spread ….
let numbers = [5, 12, 3, 18];
console.log(Math.min(...numbers));
console.log(Math.max(...numbers));
Результат:
3
18
Запись …numbers как бы разворачивает массив в набор отдельных значений.
Ограничение значения диапазоном
Math.min() и Math.max() часто используют, чтобы не дать числу выйти за границы.
Например, значение должно быть не меньше 0 и не больше 100.
let value = 130;
let limitedValue = Math.min(Math.max(value, 0), 100);
console.log(limitedValue);
Результат:
100
Сначала Math.max(value, 0) не дает значению стать меньше 0. Потом Math.min(…, 100) не дает ему стать больше 100.
Такой прием часто называют ограничением значения диапазоном.
Если массив пустой
Если массив может быть пустым, его лучше проверить заранее.
let numbers = [];
if (numbers.length > 0) {
console.log(Math.min(...numbers));
}
Без проверки можно получить неожиданный результат:
console.log(Math.min(...[]));
console.log(Math.max(...[]));
Результат:
Infinity
-Infinity
Обычно в учебных и рабочих задачах такой результат не нужен, поэтому пустой массив обрабатывают отдельно.
Итого
Для поиска минимального и максимального значения используют методы объекта Math.
Math.min()возвращает минимальное число.Math.max()возвращает максимальное число.- Для массива используют spread:
Math.min(…numbers)иMath.max(…numbers). - Перед поиском минимума или максимума в массиве стоит проверить, что массив не пустой.
Math.min()иMath.max()удобно использовать для ограничения значения диапазоном.