Intl​.List​Format​.prototype​.formatToParts()

Draft
This page is not complete.

The Intl.ListFormat.prototype.formatToParts() method returns an Array of objects representing the different components that can be used to format a list of values in a locale-aware fashion.

Syntax

Intl.ListFormat.prototype.formatToParts(list)

Parameters

list
An Array of values to be formatted according to a locale.

Return value

An Array of components which contains the formatted parts from the list.

Description

Whereas Intl.ListFormat.prototype.format() returns a string being the formated version of the list (according to the given locale and style options), formatToParts() returns an array of the different components of the formated string.

Each element of the resulting array has two properties: type and value. The type property may be either "element", which refers to a value from the list, or "literal" which refers to a linguistic construct. The value property gives the content, as a string, of the token.

The locale and style options used for formatting are given when constructing the Intl.ListFormat instance.

Examples

const fruits = ['Apple', 'Orange', 'Pineapple'];
const myListFormat = new Intl.ListFormat('en-GB', { style: 'long', type: 'conjunction' });

console.table(myListFormat.formatToParts(fruits));
// [
//  { "type": "element", "value": "Apple" },
//  { "type": "literal", "value": ", " },
//  { "type": "element", "value": "Orange" },
//  { "type": "literal", "value": ", and " },
//  { "type": "element", "value": "Pineapple" }
// ]

Specifications

Specification Status Comment
Intl.ListFormat.prototype.formatToParts proposal Stage 3

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
formatToParts
Experimental
Chrome Full support 72Edge No support NoFirefox No support NoIE No support NoOpera Full support 60Safari No support NoWebView Android Full support 72Chrome Android Full support 72Firefox Android No support NoOpera Android ? Safari iOS No support NoSamsung Internet Android Full support Yesnodejs No support No

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.

See also