Array.prototype.toSorted în JavaScript

Returnează o copie sortată a tabloului, fără să modifice originalul.

Sintaxă
tablou.toSorted((a, b) => a - b)

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.