我可以使用国际化 API 格式化句子,使其在最后一项之前包含"and"单词吗?



我正在尝试创建一个字符串,其中我想要以下

  1. 句子的最后一个单词之前应该有和
  2. 如果只有一个词,那么不和

对于和阵列['john','harry', 'darren']

我预计以下

例如john harry and daren

这是国际化的一个有效案例吗?还是我最好只编程这样做?

您要查找的是Intl.ListFormat:

const names = ['john','harry', 'darren'];
const formatter = new Intl.ListFormat('en', { style: 'long', type: 'conjunction' });
console.log(formatter.format(names)); // prints john, harry, and darren

如果要使用默认区域设置,请将'en'替换为undefined

您可以创建一个函数,其主体看起来像这样:


function myFunc (a) {
if (a.length > 1) {
const exceptLast = a.slice(0, -1)
let last = a.slice(-1)
last = ['and', ...last]
return [...exceptLast, ...last].join(" ")
}
return a[0]
}

这样测试:


const da = ['b', 'cc', 'ddd']
const da1 = ['b']
const da2 = ['b']

console.log(myFunc(da))
console.log(myFunc(da1))
console.log(myFunc(da2))

相关内容

最新更新