Array.prototype.toLocaleString()
Базовая реализация Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с сентября 2017 года.
Метод toLocaleString() экземпляров Array возвращает строку, представляющую элементы массива. Элементы преобразуются в строки с использованием их методов toLocaleString, и эти строки разделяются строкой, специфичной для локали (например, запятой ",").
Попробовать
const array = [1, "a", new Date("21 Dec 1997 14:12:00 UTC")];
const localeString = array.toLocaleString("en", { timeZone: "UTC" });
console.log(localeString);
// Expected output: "1,a,12/21/1997, 2:12:00 PM",
// This assumes "en" locale and UTC timezone - your results may vary
Синтаксис
toLocaleString() toLocaleString(locales) toLocaleString(locales, options)
Параметры
-
localesНеобязательно - Строка с тегом языка BCP 47 или массив таких строк. Общую форму и интерпретацию аргумента
localesсмотрите в описании параметра на главной страницеIntl. -
optionsНеобязательно - Объект со свойствами конфигурации. То, что вы можете здесь передать, зависит от того, какие элементы преобразуются. Например, для чисел см.
Number.prototype.toLocaleString().
Возвращаемое значение
Строка, представляющая элементы массива.
Описание
Метод Array.prototype.toLocaleString обходит свое содержимое, вызывая метод toLocaleString каждого элемента с предоставленными параметрами locales и options и объединяет их с помощью разделителя, определяемого реализацией (например, запятой ",").
Примечание: Аргументы locales или options не управляют разделителем, используемым между элементами массива; они просто передаются методу toLocaleString() каждого элемента. Фактический разделитель (обычно запятая) зависит исключительно от текущей локали хоста. Если вы ожидаете локализованного форматирования списка, рассмотрите возможность использования Intl.ListFormat.
Если элемент является undefined, null, он преобразуется в пустую строку вместо строки "null" или "undefined".
При использовании на разреженных массивах метод toLocaleString() итерирует пустые слоты, как если бы они имели значение undefined.
Метод toLocaleString() является обобщенным. Он ожидает, что значение this будет иметь свойство length и свойства с целочисленными ключами.
Примеры
Использование локалей и опций
Элементы массива преобразуются в строки с использованием их методов toLocaleString. Например, этот фрагмент неявно вызывает метод Number.prototype.toLocaleString() для отображения валюты для строк и чисел в массиве prices:
const prices = ["¥7", 500, 8123, 12];
prices.toLocaleString("ja-JP", { style: "currency", currency: "JPY" });
// "¥7,¥500,¥8,123,¥12"
Разделители списка
Разделитель списка не зависит от параметра locales. Чтобы настроить его, используйте вместо этого Intl.ListFormat.
const nums = [8888, 9999];
console.log(nums.toLocaleString("zh")); // "8,888,9,999"
const formatter = new Intl.ListFormat("zh", {
type: "conjunction",
style: "narrow",
});
console.log(formatter.format(nums.map((x) => x.toLocaleString("zh"))));
// "8,888、9,999"
Использование toLocaleString() на разреженных массивах
toLocaleString() обрабатывает пустые слоты так же, как undefined, и создает дополнительный разделитель:
console.log([1, , 3].toLocaleString()); // '1,,3'
Вызов toLocaleString() на объектах, не являющихся массивами
Метод toLocaleString() считывает свойство length объекта this, а затем обращается к каждому свойству, ключ которого является неотрицательным целым числом меньше length.
const arrayLike = {
length: 3,
0: 1,
1: 2,
2: 3,
3: 4, // ignored by toLocaleString() since length is 3
};
console.log(Array.prototype.toLocaleString.call(arrayLike));
// 1,2,3
Спецификации
| Спецификация |
|---|
| ECMAScript® 2027 Language Specification # sec-array.prototype.tolocalestring |
| ECMAScript® 2027 Internationalization API Specification # sup-array.prototype.tolocalestring |
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
toLocaleString |
1 |
12 |
1 |
4 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
1 |
1 |
1.0.0 |
1.0 |
0.10.0 |
locales_parameter |
24 |
79 |
52 |
15 |
7 |
25 |
56 |
14 |
7 |
2.0 |
4.4 |
7 |
1.0.0 |
1.8
1.0–1.8Доступны только данные локали дляen-US. |
13.0.0
0.12.0–13.0.0До версии 13.0.0 по умолчанию доступны только данные локали дляen-US. Когда указаны другие локали, функция незаметно возвращается к en-US. Чтобы сделать полные данные ICU (локали) доступными до версии 13, см. документацию Node.js по опции --with-intl и способам предоставления данных. |
options_parameter |
24 |
79 |
52 |
15 |
7 |
25 |
56 |
14 |
7 |
2.0 |
4.4 |
7 |
1.0.0 |
1.0 |
0.12.0 |
Смотрите также
- Руководство по индексированным коллекциям
ArrayArray.prototype.toString()TypedArray.prototype.toLocaleString()IntlIntl.ListFormatObject.prototype.toLocaleString()Number.prototype.toLocaleString()Temporal.PlainDate.prototype.toLocaleString()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toLocaleString