Intl.supportedValuesOf()

Intl.supportedValuesOf() 方法返回一个数组,其中包含实现支持的日历、排序规则、货币、编号系统或单位值。

重复项被省略,数组按字母升序排序(或者更准确地说,使用 Array.prototype.sort() undefined 比较函数)

该方法可用于特性测试特定实现中是否支持值,并仅在必要时下载polyfill。它还可以用于构建UI,允许用户选择其首选的本地化值,例如,当从WebGL或服务器端创建UI时。


Syntax

Intl.supportedValuesOf(key)


Parameters

key

A key string indicating the category of values to be returned. This is one of: "calendar" , "collation" , "currency" , "numberingSystem" , "timeZone" , "unit" .


Return value

A sorted array of unique string values indicating the values supported by the implementation for the given key.


Exceptions

RangeError

An unsupported key was passed as a parameter.


Examples


Feature testing

You can check that the method is supported by comparing to undefined :

if (typeof Intl.supportedValuesOf !== 'undefined') {
  // method is supported
}


Get all values for key

To get the supported values for calendar you call the method with the key "calendar" . You can then iterate through the returned array as shown below:

Intl.supportedValuesOf("calendar").forEach((calendar) => {
  // "buddhist", "chinese", "coptic", "dangi", etc.
});

Note: The array returned for calendar values will always include the value "gregory"(gregorian).

The other values are all obtained in the same way:

Intl.supportedValuesOf("collation").forEach((collation) => {
  // "big5han", "compat", "dict", "emoji", etc.
});

Intl.supportedValuesOf("currency").forEach((currency) => {
  // "ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", etc.
});

Intl.supportedValuesOf("numberingSystem").forEach((numberingSystem) => {
  // "adlm", "ahom", "arab", "arabext", "bali", etc.
});

Intl.supportedValuesOf("timeZone").forEach((timeZone) => {
  // "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", etc.
});

Intl.supportedValuesOf("unit").forEach((unit) => {
  // "acre", "bit", "byte", "celsius", "centimeter", etc.
});


Invalid key throws RangeError

try {
  Intl.supportedValuesOf("someInvalidKey");
} catch (err) {
  //Error: RangeError: invalid key: "someInvalidKey"
}