我想将数组 ['one', 'two', 'three', 'four']
转换成 one, two, three and four
请注意,第一个项目有一个逗号,但倒数第二个和最后一个之间有单词 and
。
我想出的最佳解决方案:
a.reduce( (res, v, i) => i === a.length - 2 ? res + v + ' and ' : res + v + ( i == a.length -1? '' : ', '), '' )
它基于在 末尾 添加逗号——倒数第二个逗号 ( a.length - 2
) 除外,并且有一种方法可以避免最后一个逗号 ( a.length - 2
)。
肯定有更好、更整洁、更智能的方法来做到这一点吗?
这是一个很难在搜索引擎上搜索的主题,因为它包含单词“和”……
原文由 Merc 发布,翻译遵循 CC BY-SA 4.0 许可协议
一种选择是
pop
最后一项,然后join
其余所有用逗号连接,并与and
加上最后一项- 连接:如果您不能改变输入数组,请使用
slice
代替,如果输入数组中可能只有一项,请先检查数组的长度: