Intl.ListFormat în JavaScript

Unește elementele unei liste într-o propoziție corectă: „mere, pere și prune”.

Sintaxă
const lf = new Intl.ListFormat("ro", { type: "conjunction" });
lf.format(lista)

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.ListFormat le 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.).