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"
}