Math.max()
Статичний метод Math.max()
(максимум) повертає найбільше значення з-поміж переданих нуля чи більше вхідних чисел, або -Infinity
, якщо параметрів немає.
Спробуйте його в дії
Синтаксис
Math.max()
Math.max(value1)
Math.max(value1, value2)
Math.max(value1, value2, /* …, */ valueN)
Параметри
value1
, …,valueN
Нуль чи більше чисел, найбільше з яких буде знайдено і повернено.
Повернене значення
Найбільше з-поміж переданих значень. Повертає NaN
, якщо будь-який з параметрів є NaN
або може бути зведений до NaN
. Повертає -Infinity
, якщо не передано жодних аргументів.
Опис
Оскільки max()
— це статичний метод об'єкта Math
, його потрібно завжди використовувати через Math.max()
. Не слід звертатись до нього як до методу власноруч створеного екземпляра Math
(Math
не є конструктором).
Math.max.length
дорівнює 2, що натякає на те, що ця функція розроблена для обробки принаймні двох параметрів.
Приклади
Застосування Math.max()
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
Отримання найбільшого з елементів масиву
Для отримання найбільшого з числових елементів масиву можна застосувати Array.prototype.reduce()
, шляхом порівняння кожного зі значень:
const arr = [1, 2, 3];
const max = arr.reduce((a, b) => Math.max(a, b), -Infinity);
Наступна функція використовує Function.prototype.apply()
для отримання найбільшого елемента масиву. Виклик getMaxOfArray([1, 2, 3])
еквівалентний застосуванню Math.max(1, 2, 3)
, але getMaxOfArray()
можна використовувати на програмно сконструйованих масивах. Такий підхід слід застосовувати лише на масивах з відносно невеликою кількістю елементів.
function getMaxOfArray(numArray) {
return Math.max.apply(null, numArray);
}
Синтаксис розгортання — це скорочений спосіб запису рішення з apply
для отримання найбільшого з елементів масиву:
const arr = [1, 2, 3];
const max = Math.max(...arr);
Втім, як оператор розгортання (...
), так і apply
– або завершаться невдачею, або повернуть некоректне значення, якщо масив містить занадто багато елементів, оскільки вони намагаються передати елементи масиву аргументами до функції. Зверніть увагу на розділ Застосування apply
із вбудованими функціями для отримання подробиць. Рішення з reduce
не має такої проблеми.
Специфікації
Сумісність із браузерами
desktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
max
|
Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | Internet Explorer Full support 3 | Opera Full support 3 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox for Android Full support 4 | Opera Android Full support 10.1 | Safari on iOS Full support 1 | Samsung Internet Full support 1.0 | Deno Full support 1.0 | Node.js Full support 0.10.0 |