Javascript:很好的人类可读的列表连接

Ghi*_*taB 1 javascript

有一个标签列表(数组)['tag1', 'tag2', 'tag3']我想生成一个很好的标题,如:Content tagged tag1, tag2 and tag3.

目前我有:

"Content tagged " + tags_titles.join(" and ");
Run Code Online (Sandbox Code Playgroud)

结果: Content tagged tag1 and tag2 and tag3

我知道这是一个简单的问题,但我很好奇是否有一个很好的解决方案.

Nin*_*olz 7

您可以获取最后两个元素并将它们连接起来' and '并将其作为最后一个元素放回到数组中,然后将所有元素连接起来', '以获得一个好的字符串.

方法

此提议适用于任何长度的数组,即使有一个或两个元素.

function nice(array) {
    return array.concat(array.splice(-2, 2).join(' and ')).join(', ');
}

console.log("Content tagged " + nice(['tag1']));
console.log("Content tagged " + nice(['tag1', 'tag2']));
console.log("Content tagged " + nice(['tag1', 'tag2', 'tag3']));
Run Code Online (Sandbox Code Playgroud)

  • @Jamiec,随意添加一些健全性检查。 (2认同)