Ce face Array.prototype.toSorted
toSorted primește aceeași funcție de comparare ca sort și sortează la fel, dar returnează un tablou nou. Este alegerea potrivită când tabloul vine din altă parte a codului și nu trebuie stricat.
Fără funcție de comparare, elementele sunt sortate ca texte, deci 10 ajunge înaintea lui 9, exact ca la sort.
Parametri
| Parametru | Descriere |
|---|---|
functieComparare |
Opțional. Primește (a, b) și returnează un număr negativ, 0 sau pozitiv. |
Ce returnează
Un tablou nou, sortat.
Exemple
Exemplul 1: Sortare fără efecte secundare
const preturi = [120, 9, 45, 1000];
console.log(preturi.toSorted());
console.log(preturi.toSorted((a, b) => a - b));
console.log(preturi);
Rezultat
[ 1000, 120, 45, 9 ]
[ 9, 45, 120, 1000 ]
[ 120, 9, 45, 1000 ]
Exemplul 2: Clasament după punctaj
const jucatori = [{ nume: "Ana", puncte: 82 }, { nume: "Dan", puncte: 95 }, { nume: "Ioana", puncte: 88 }];
console.log(jucatori.toSorted((a, b) => b.puncte - a.puncte).map((j) => j.nume));
Rezultat
[ 'Dan', 'Ioana', 'Ana' ]
Greșeli frecvente
- Uiți funcția de comparare la numere și primești ordinea alfabetică:
[9, 120, 45].toSorted()dă[120, 45, 9].
Comenzi înrudite
sort: Ordonează elementele unui tablou. Modifică tabloul original.Array.prototype.toReversed: Returnează o copie a tabloului cu elementele în ordine inversă, fără să modifice originalul.String.prototype.localeCompare: Compară două texte după regulile alfabetului unei limbi; util la sortarea cu diacritice.