Фукнція 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 не має такої проблеми.

 

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

Специфікація Статус документу Примітка
ECMAScript 1st Edition (ECMA-262) Standard Первинне визначення. Реалізовано у JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'Math.max' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.max' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.max' in that specification.
Draft  

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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes1 Yes Yes Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes Yes Yes

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

Мітки документа й учасники

Зробили внесок у цю сторінку: AdriandeCita
Востаннє оновлена: AdriandeCita,