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
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
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

Дивіться також