Math.max / Math.min în JavaScript

Numere și matematică Toate browserele, Node.js

Returnează cel mai mare sau cel mai mic dintre numerele primite.

Sintaxă
Math.max(a, b, ...)
Math.min(a, b, ...)

Ce face Math.max / Math.min

Math.max returnează cel mai mare număr dintre parametri, iar Math.min pe cel mai mic. Primesc numere separate, nu un tablou: pentru un tablou folosește spread, Math.max(...tablou).

Fără niciun parametru, Math.max() returnează -Infinity, iar Math.min() returnează Infinity. Dacă un parametru nu poate fi transformat în număr, rezultatul este NaN.

Parametri

Parametru Descriere
a, b, ... Numerele comparate.

Ce returnează

Cel mai mare (max) sau cel mai mic (min) număr.

Exemple

Exemplul 1: Numere și tablouri

const temperaturi = [12, 18, 25, 31, 22];

console.log(Math.max(4, 9, 2));
console.log(Math.max(...temperaturi), Math.min(...temperaturi));
console.log(Math.max(temperaturi));
console.log(Math.max());

Rezultat

9
31 12
NaN
-Infinity

Exemplul 2: Limitarea unei valori între două praguri

const limiteaza = (valoare, min, max) => Math.min(Math.max(valoare, min), max);

console.log(limiteaza(150, 0, 100));
console.log(limiteaza(-20, 0, 100));
console.log(limiteaza(42, 0, 100));

Rezultat

100
0
42

Exemplul 3: Cel mai scump produs

const produse = [{ nume: "Mouse", pret: 89 }, { nume: "Monitor", pret: 899 }, { nume: "Cablu", pret: 25 }];
const maxim = Math.max(...produse.map((p) => p.pret));

console.log(maxim, produse.find((p) => p.pret === maxim).nume);

Rezultat

899 Monitor

Greșeli frecvente

  • Dai un tablou direct: Math.max([1, 2, 3]) dă NaN. Folosește Math.max(...tablou).
  • Calculezi maximul unui tablou care poate fi gol și primești -Infinity. Verifică întâi tablou.length.

Comenzi înrudite

  • ... (spread): Desface un tablou sau un obiect în elementele lui. Folosit pentru copii și combinări.
  • reduce: Combină toate elementele unui tablou într-o singură valoare: o sumă, un obiect, un text.
  • Math.round / floor / ceil: Rotunjește un număr: la cel mai apropiat întreg, în jos sau în sus.