Ce face Intl.Collator
compare(a, b) returnează un număr negativ, zero sau pozitiv, deci poate fi dat direct lui sort: lista.sort(colator.compare). Funcția este deja legată de colator, nu trebuie bind.
Opțiuni utile: sensitivity ("base" ignoră majusculele), numeric: true (sortează „fișier2” înaintea lui „fișier10”), caseFirst: "upper", ignorePunctuation. resolvedOptions și supportedLocalesOf funcționează ca la celelalte obiecte Intl.
Parametri
| Parametru | Descriere |
|---|---|
limba |
Opțional. Codul limbii, de exemplu "ro". |
optiuni |
Opțional. sensitivity, numeric, caseFirst, usage ("sort" sau "search"). |
Ce returnează
Un obiect colator.
Exemple
Exemplul 1: Sortare românească și numerică
const ro = new Intl.Collator("ro");
console.log(["țară", "tată", "șase", "sare", "înot", "inel"].sort(ro.compare));
const fisiere = new Intl.Collator("ro", { numeric: true });
console.log(["poza10.jpg", "poza2.jpg", "poza1.jpg"].sort(fisiere.compare));
Rezultat
[ 'inel', 'înot', 'sare', 'șase', 'tată', 'țară' ]
[ 'poza1.jpg', 'poza2.jpg', 'poza10.jpg' ]
Exemplul 2: Căutare fără majuscule
const c = new Intl.Collator("ro", { sensitivity: "base" });
console.log(c.compare("Brașov", "BRAȘOV"), c.compare("Brașov", "Brasov") !== 0);
console.log(c.resolvedOptions().sensitivity, Intl.Collator.supportedLocalesOf("ro-MD"));
Rezultat
0 true
base [ 'ro-MD' ]
Greșeli frecvente
- Sortezi cu
sort()fără funcție un tablou cu nume românești: literele cu diacritice ajung la final.
Comenzi înrudite
String.prototype.localeCompare: Compară două texte după regulile alfabetului unei limbi; util la sortarea cu diacritice.sort: Ordonează elementele unui tablou. Modifică tabloul original.Array.prototype.toSorted: Returnează o copie sortată a tabloului, fără să modifice originalul.