Math.max()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Phương thức tĩnh Math.max() trả về số lớn nhất trong các tham số đầu vào, hoặc -Infinity nếu không có tham số nào.

Try it

console.log(Math.max(1, 3, 2));
// Expected output: 3

console.log(Math.max(-1, -3, -2));
// Expected output: -1

const array = [1, 3, 2];

console.log(Math.max(...array));
// Expected output: 3

Cú pháp

js
Math.max()
Math.max(value1)
Math.max(value1, value2)
Math.max(value1, value2, /* …, */ valueN)

Tham số

value1, …, valueN

Không hoặc nhiều số để chọn và trả về giá trị lớn nhất.

Giá trị trả về

Số lớn nhất trong các số đã cho. Trả về NaN nếu bất kỳ tham số nào là hoặc được chuyển đổi thành NaN. Trả về -Infinity nếu không có tham số nào.

Mô tả

max() là một phương thức tĩnh của Math, bạn luôn sử dụng nó dưới dạng Math.max(), thay vì là phương thức của một đối tượng Math bạn tạo ra (Math không phải là constructor).

Math.max.length là 2, cho thấy hàm được thiết kế để xử lý ít nhất hai tham số.

Ví dụ

Sử dụng Math.max()

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

Lấy phần tử lớn nhất trong mảng

Array.prototype.reduce() có thể dùng để tìm phần tử lớn nhất trong mảng số, bằng cách so sánh từng giá trị:

js
const arr = [1, 2, 3];
const max = arr.reduce((a, b) => Math.max(a, b), -Infinity);

Hàm sau dùng Function.prototype.apply() để lấy giá trị lớn nhất của mảng. getMaxOfArray([1, 2, 3]) tương đương với Math.max(1, 2, 3), nhưng bạn có thể dùng getMaxOfArray() với mảng được xây dựng theo chương trình. Chỉ nên dùng với mảng có tương đối ít phần tử.

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

Cú pháp spread là cách ngắn hơn để viết giải pháp apply nhằm lấy giá trị lớn nhất của mảng:

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

Tuy nhiên, cả spread (...) lẫn apply đều sẽ thất bại hoặc trả về kết quả sai nếu mảng có quá nhiều phần tử, vì chúng cố truyền các phần tử mảng làm tham số hàm. Xem Using apply and built-in functions để biết thêm chi tiết. Giải pháp reduce không gặp vấn đề này.

Đặc tả kỹ thuật

Specification
ECMAScript® 2027 Language Specification
# sec-math.max

Tương thích trình duyệt

Xem thêm