このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Array.prototype.toLocaleString()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
toLocaleString() はArray インスタンスのメソッドで、配列の要素を表す文字列を返します。配列の要素は、それぞれのtoLocaleString メソッドを使い、ロケール固有の文字列に変換されます(例えばカンマ "," など)。
In this article
試してみましょう
const array = [1, "a", new Date("21 Dec 1997 14:12:00 UTC")];const localeString = array.toLocaleString("en", { timeZone: "UTC" });console.log(localeString);// 予想される結果: "1,a,12/21/1997, 2:12:00 PM",// "en" ロケールおよび UTC タイムゾーンを想定したもの。結果は異なることがある構文
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 プロパティと整数キーのプロパティがあることだけを期待します。
例
>locales と options の使用
配列の要素は、そのtoLocaleString メソッドを使用して文字列に変換されます。例えば、このスニペットは、prices 配列の文字列および数値の通貨を表示するために、Number.prototype.toLocaleString() メソッドを暗黙的に呼び出します。
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() メソッドはthis のlength プロパティを読み込み、そのキーがlength よりも小さい非負の整数である各プロパティにアクセスします。
const arrayLike = { length: 3, 0: 1, 1: 2, 2: 3, 3: 4, // length が 3 であるため toLocaleString() からは無視される};console.log(Array.prototype.toLocaleString.call(arrayLike));// 1,2,3仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.tolocalestring> |
| ECMAScript® 2026 Internationalization API Specification> # sup-array.prototype.tolocalestring> |