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


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



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.

Optional. 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". For information about this option, see the Intl page.
  • type
    The format of 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). "unit" stands for lists of values with units (e.g., 5 pounds, 12 ounces).
  • style
    The length of the formated 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.


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: 'short', type: 'disjunction' }).format(list));
// > Motorcycle, Bus or Car

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


Browser compatibilityUpdate compatibility data on GitHub

Chrome Edge Firefox Internet Explorer Opera Safari
ListFormat() constructor 72 79 78 No 60 No
Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
ListFormat() constructor 72 72 No 51 No No
ListFormat() constructor 13.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 for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.