Math.max()

Фукнція Math.max() повертає найбільше значення із довільної кількості (0 та більше) аргументів.

Синтаксис

Math.max([value1[, value2[, ...]]])

Аргументи

value1, value2, ...
Числа.

Результат

Найбільше із даних чисел. Якщо хоча б один із аргументів неможливо привести до числового типу - буде повернуто NaN.

Опис

У зв'язку з тим, що max() - це статичний метод Math, слід завжди викликати його як Math.max(), аніж як метод створеного вами об'єкту Math (оскільки Math не являється конструктором).

Якщо не дано жодного аргумента, результатом буде -Infinity.

Якщо щонайменше один із аргументів не можна привести до числового типу, то результатом буде NaN.

Приклади

Застосування Math.max()

Math.max(10, 20);   //  20
Math.max(-10, -20); // -10
Math.max(-10, 20);  //  20

Отримання найбільшого з елементів масиву

Array.reduce() може застосовуватись для пошуку найбільшого елементу в числовому масиві шляхом порівняння кожного значення:

var arr = [1,2,3];
var max = arr.reduce(function(a, b) {
    return Math.max(a, b);
});

Наступна функція використовує Function.prototype.apply() для отримання найбільшого серед масиву чисел. getMaxOfArray([1, 2, 3]) еквівалентна до Math.max(1, 2, 3), проте ви можете застосовувати getMaxOfArray() для масивів, сформованих у процесі виконання програми. Цей спосіб слід застосовувати лише для масивів з відносно невеликою кількістю елементів.

function getMaxOfArray(numArray) {
  return Math.max.apply(null, numArray);
}

Новий оператор поширення (spread operator) - це більш компактний спосіб записати рішення на базі apply для отримання максимуму із масиву чисел:

var arr = [1, 2, 3];
var max = Math.max(...arr);

Однак, як оператор поширення (...), так і apply призведуть до помилки або повернуть невірний результат, якщо вхідний масив має забагато елементів, бо вони намагаються передати елементи масиву в якості параметрів функції. Дивіться Використання методу apply і вбудованих фукнцій для більш докладної інформації. Рішення на базі reduce не має такої проблеми.

Специфікації

Підтримка у браузерах

BCD tables only load in the browser

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