Javascript中的条件array.join

sno*_*s74 2 javascript arrays

我有一个字符串数组,我想将它们显示为逗号分隔的字符串,但在最后一个元素上添加“ and”。例如我有

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(' ,'); 
Run Code Online (Sandbox Code Playgroud)

输出

'Banana, Orange, Apple, Mango'
Run Code Online (Sandbox Code Playgroud)

有什么办法我给最后一个单词加上“和”,以便输出

'Banana, Orange, Apple and Mango'
Run Code Online (Sandbox Code Playgroud)

Kur*_*gan 5

您可以使用slice联接数组的前3个元素,然后联接并附加以'and'串联的最后一个元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.slice(0, fruits.length - 1).join(', '); 
energy += ' and ' + fruits[fruits.length - 1];
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以改为使用Array.reducefunction 并实现您自己的逻辑,例如:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.reduce(function (p, d, i) {
  return p + (i === fruits.length - 1 ? ' and ' : ', ') + d;
});
Run Code Online (Sandbox Code Playgroud)