Array.prototype.toLocaleString()

基线 广泛可用

此功能已得到良好建立,并且可在许多设备和浏览器版本中使用。它已在浏览器中可用,自 2017 年 9 月.

toLocaleString() 方法是 Array 实例的方法,它返回一个表示数组元素的字符串。元素使用其 toLocaleString 方法转换为字符串,这些字符串由特定于区域设置的字符串(例如逗号“,”)分隔。

试一试

语法

js
toLocaleString()
toLocaleString(locales)
toLocaleString(locales, options)

参数

locales 可选

带有 BCP 47 语言标记的字符串,或此类字符串的数组。有关 locales 参数的一般形式和解释,请参阅 Intl 主页上的参数说明

options 可选

具有配置属性的对象。对于数字,请参阅 Number.prototype.toLocaleString();对于日期,请参阅 Date.prototype.toLocaleString()

返回值

表示数组元素的字符串。

描述

Array.prototype.toLocaleString 方法遍历其内容,使用提供的 localesoptions 参数调用每个元素的 toLocaleString 方法,并使用实现定义的分隔符(例如逗号“,”)将它们连接起来。请注意,该方法本身不会使用这两个参数——它只会将它们传递给每个元素的 toLocaleString()。分隔符字符串的选择取决于主机当前的区域设置,而不是 locales 参数。

如果元素为 undefinednull,则将其转换为空字符串,而不是字符串 "null""undefined"

当在 稀疏数组 上使用时,toLocaleString() 方法会迭代空插槽,就好像它们的值为 undefined 一样。

toLocaleString() 方法是 泛型 的。它只期望 this 值具有 length 属性和整数键属性。

示例

使用区域设置和选项

数组的元素使用其 toLocaleString 方法转换为字符串。

始终显示 prices 数组中字符串和数字的货币。

js
const prices = ["¥7", 500, 8123, 12];
prices.toLocaleString("ja-JP", { style: "currency", currency: "JPY" });

// "¥7,¥500,¥8,123,¥12"

有关更多示例,另请参阅 Intl.NumberFormatIntl.DateTimeFormat 页面。

在稀疏数组上使用 toLocaleString()

toLocaleString() 将空插槽视为与 undefined 相同,并生成额外的分隔符。

js
console.log([1, , 3].toLocaleString()); // '1,,3'

在非数组对象上调用 toLocaleString()

toLocaleString() 方法读取 thislength 属性,然后访问其键为小于 length 的非负整数的每个属性。

js
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 语言规范
# sec-array.prototype.tolocalestring
ECMAScript 国际化 API 规范
# sup-array.prototype.tolocalestring

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅