javascript / latest / global_objects / intl / listformat / listformat.html /

Intl.ListFormat() constructor

The Intl.ListFormat() constructor creates Intl.ListFormat objects that enable language-sensitive list formatting.

Try it

Syntax

new Intl.ListFormat()
new Intl.ListFormat(locales)
new Intl.ListFormat(locales, options)

Parameters

locales Optional

A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the Intl page.

options Optional

An object with some or all of the following properties:

localeMatcher

The locale-matching algorithm to use. Possible values:

  • "best fit" (default)
  • "lookup"

For information about this option, see the Intl page.

type

Indicates the type of grouping. Possible values:

  • "conjunction", for "and"-based grouping of the list items: "A, B, and C" (default)
  • "disjunction", for "or"-based grouping of the list items: "A, B, or C"
  • "unit", for grouping the list items as a unit (neither "and"-based nor "or"-based): "A, B, C"
style

Indicates the grouping style (for example, whether list separators and conjunctions are included). Possible values:

  • "long": "A, B, and C" (default)
  • "short": "A, B, C"
  • "narrow": "A B C"

Examples

Using format

The following example shows how to create a List formatter using the English language.

const list = ['Motorcycle', 'Bus', 'Car'];

console.log(new Intl.ListFormat('en-GB', { style: 'long', type: 'conjunction' })
.format(list));
// Motorcycle, Bus and Car

console.log(new Intl.ListFormat('en-GB', { style: 'long' })
.format(list));
// Motorcycle, Bus and Car

console.log(new Intl.ListFormat('en-US', { style: 'long' })
.format(list));
// Motorcycle, Bus, and Car

console.log(new Intl.ListFormat('en-GB', { style: 'short', type: 'conjunction' })
.format(list));
// Motorcycle, Bus and Car

console.log(new Intl.ListFormat('en-US', { style: 'short', type: 'conjunction' })
.format(list));
// Motorcycle, Bus, & Car

console.log(new Intl.ListFormat('en-GB', { style: 'narrow', type: 'conjunction' })
.format(list));
// Motorcycle, Bus, Car

console.log(new Intl.ListFormat('en-GB', { style: 'long', type: 'disjunction' })
.format(list));
// Motorcycle, Bus or Car

console.log(new Intl.ListFormat('en-GB', { style: 'short', type: 'disjunction' })
.format(list));
// Motorcycle, Bus or Car

console.log(new Intl.ListFormat('en-GB', { style: 'narrow', type: 'disjunction' })
.format(list));
// Motorcycle, Bus or Car

console.log(new Intl.ListFormat('en-US', { style: 'narrow' })
.format(list));
// Motorcycle, Bus, Car

console.log(new Intl.ListFormat('en-GB', { style: 'narrow', type: 'unit' })
.format(list));
// Motorcycle Bus Car

console.log(new Intl.ListFormat('en-US', { style: 'long' })
.format(["30 degrees", "15 minutes", "50 seconds"]));
// 30 degrees, 15 minutes, and 50 seconds

console.log(new Intl.ListFormat('en-US', { style: 'narrow' })
.format(["30 degrees", "15 minutes", "50 seconds"]));
// 30 degrees, 15 minutes, 50 seconds

console.log(new Intl.ListFormat('en-US', { style: 'narrow', type: 'unit' })
.format(["30°", "15′", "50″"]));
// 30° 15′ 50″

Specifications

Browser compatibility

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet Deno Node.js
ListFormat
72
79
78
No
60
14.1
Only available on macOS Big Sur (11) and above.
72
72
79
51
14.5
11.0
1.8
13.0.0
12.0.0
Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the ListFormat instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.

See also

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat