Фукнція Math.max()
повертає найбільше значення із довільної кількості (0 та більше) аргументів.
Джерело цих інтерактивних прикладів зберігається у репозиторії на GitHub. Якщо ви маєте бажання зробити свій внесок у проект інтерактивних прикладів - будь ласка, зклонуйте репозиторій https://github.com/mdn/interactive-examples та пришліть нам pull request.
Синтаксис
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 |
Підтримка у браузерах
Таблиця сумісності на цій сторінці сформована автоматично із структурованих даних. Якщо ви маєте бажання зробити свій внесок до цих даних - будь-ласка, ось репозиторій https://github.com/mdn/browser-compat-data, надішліть нам свій pull request.
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Basic support | Chrome Full support Yes | Edge Full support Yes | Firefox Full support 1 | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs Full support Yes |
Legend
- Full support
- Full support