我正在尝试创建一个字符串,其中我想要以下
- 句子的最后一个单词之前应该有和
- 如果只有一个词,那么不和
对于和阵列['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))