Intl.ListFormat
Convert arrays to human-readable lists
1
const books = [
2
'Harry Potter',
3
'Bhagavad Gita',
4
'The Alchemist',
5
'Birthday Girl'
6
]
7
8
const listFormatter1 = new Intl.ListFormat('en', {
9
style: 'long',
10
type: 'conjunction'
11
})
12
console.log(listFormatter1.format(books));
13
// Harry Potter, Bhagavad Gita, The Alchemist, and Birthday Girl
14
15
const listFormatter2 = new Intl.ListFormat('en-GB', {
16
style: 'short',
17
type: 'disjunction'
18
})
19
console.log(listFormatter2.format(books));
20
// Harry Potter, Bhagavad Gita, The Alchemist, or Birthday Girl
21
Copied!
The first part is to create the formatter using the Intl.ListFormat method. This method accepts two optional parameters.
    locales - A string with a BCP 47 language tag, or an array of such strings.
    options - An object with some or all of the following properties:
      localeMatcher - The locale matching algorithm to use. Possible values are lookup and best fit; the default is best fit.
      type - The format of the output message. Possible values are conjunction that stands for “and”-based lists (default, e.g., “A, B, and C”), or disjunction that stands for “or”-based lists (e.g., “A, B, or C”). unitstands for lists of values with units (e.g., “5 pounds, 12 ounces”).
      style - The length of the formatted message. Possible values are: long(default, e.g., “A, B, and C”); short (e.g., “A, B, C”), or narrow (e.g., “A B C”). When style is short or narrow, unit is the only allowed value for the type option.
Last modified 3mo ago
Copy link