Intl.supportedValuesOf()
Intl.supportedValuesOf()方法返回一个数组,其中包含实现支持的日历、排序规则、货币、编号系统或单位值。
重复项被省略,数组按字母升序排序(或者更准确地说,使用Array.prototype.sort()和undefined比较函数)
该方法可用于特性测试特定实现中是否支持值,并仅在必要时下载polyfill。它还可以用于构建UI,允许用户选择其首选的本地化值,例如,当从WebGL或服务器端创建UI时。
Syntax
Intl.supportedValuesOf(key)
Parameters
keyA 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
RangeErrorAn 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"
}
