Ce face Intl.ListFormat
format(lista) lipește textele cu virgule și cu conjuncția potrivită limbii: „și” pentru type: "conjunction" (implicit), „sau” pentru "disjunction", iar "unit" doar cu virgule (pentru măsuri: „3 kg, 200 g”).
Opțiunea style ("long", "short", "narrow") alege forma mai scurtă. formatToParts returnează elementele și separatorii pe bucăți.
Parametri
| Parametru | Descriere |
|---|---|
limba |
Opțional. Codul limbii. |
optiuni |
Opțional. type și style. |
Ce returnează
Un obiect formator.
Exemple
Exemplul 1: „și”, „sau” și unități
const fructe = ["mere", "pere", "prune"];
console.log(new Intl.ListFormat("ro").format(fructe));
console.log(new Intl.ListFormat("ro", { type: "disjunction" }).format(fructe));
console.log(new Intl.ListFormat("ro", { type: "unit", style: "narrow" }).format(["3 kg", "200 g"]));
console.log(new Intl.ListFormat("en").format(fructe));
console.log(new Intl.ListFormat("ro").format(["Ana"]), new Intl.ListFormat("ro").format(["Ana", "Dan"]));
Rezultat
mere, pere și prune
mere, pere sau prune
3 kg, 200 g
mere, pere, and prune
Ana Ana și Dan
Exemplul 2: Bucățile rezultatului
const lf = new Intl.ListFormat("ro");
console.log(lf.formatToParts(["Iași", "Cluj"]));
console.log(lf.resolvedOptions(), Intl.ListFormat.supportedLocalesOf("ro"));
Rezultat
[
{ type: 'element', value: 'Iași' },
{ type: 'literal', value: ' și ' },
{ type: 'element', value: 'Cluj' }
]
{ locale: 'ro', type: 'conjunction', style: 'long' } [ 'ro' ]
Greșeli frecvente
- Lipești lista cu
join(", ")și adaugi manual „și” înaintea ultimului element. Cazurile cu unul sau două elemente ies greșit;Intl.ListFormatle tratează corect.
Comenzi înrudite
join: Lipește elementele unui tablou într-un singur text, cu un separator între ele.Intl.PluralRules: Spune ce formă de plural cere un număr într-o limbă: „1 produs”, „2 produse”, „20 de produse”.Intl.NumberFormat: Formatează numere după regulile unei limbi: monedă, procente, unități, forme compacte (1,2 mil.).