将JavaScript数组连接成一个字符串,使用与语言环境相关的分隔符
Array.prototype.join()
是大多数开发者在将数组连接成字符串时会使用的工具。然而,它有一些限制,比如无法为最后一项使用不同的分隔符。幸运的是,有一个新的方法 - Intl.ListFormat
- 可以帮助我们解决这个问题。
使用Intl.ListFormat()
构造函数,我们可以创建更灵活的格式化器,允许我们指定分组类型(例如conjunction
或disjunction
)和列表的样式(例如long
、short
或narrow
)。然后,格式化器的format()
方法可以用来将数组连接成一个字符串,并使用适当的分隔符。
const formatList = (arr, locale, type, style) =>
new Intl.ListFormat(locale, { type, style }).format(arr);
formatList(['foo', 'bar', 'baz'], 'en-US', 'conjunction', 'short');
// 'foo, bar, & baz'
formatList(['foo', 'bar', 'baz'], 'en-US', 'conjunction', 'long');
// 'foo, bar, and baz'
formatList(['foo', 'bar', 'baz'], 'en-GB', 'conjunction', 'long');
// 'foo, bar and baz'
formatList(['foo', 'bar', 'baz'], 'en-US', 'disjunction', 'long');
// 'foo, bar, or baz'
[!NOTE]
如示例所示,
'en-US'
语言环境使用牛津逗号,而'en-GB'
语言环境则不使用。