数组到字符串并替换数组中的最后一个逗号(不是字符串)

时间:2015-10-30 15:23:16

标签: javascript

我有一个数组(请注意热带和菠萝的数组值相同):

'apple', 'pear', 'orange', 'tropical, pineapple'

我希望将其变成一个字符串,并用'和'替换最后一个逗号。

我表演:

fruits.join(', ');
fruits.replace(/,([^,]*)$/,'\ and$1');

这给出了:

apple, pear, orange, tropical and pineapple

我需要替换数组中的最后一个逗号而不是数组值中的任何逗号。

我正在寻找:

apple, pear, orange and tropical, pineapple

这可能吗?

1 个答案:

答案 0 :(得分:4)

在完整阵列上不要join。相反,使用

fruits.slice(0, -1).join(", ")+" and "+fruits[fruits.length-1];

如果你不再需要这个阵列,你也可以改变它,这会让事情变得更容易:

var last = fruits.pop();
console.log(fruits.join(", ")+" and "+last);

此外,我们需要考虑空输入的情况,所以它应该看起来像

if (fruits.length <= 1)
    return fruits.join(", ");
else
    return fruits.slice(0, -1).join(", ")+" and "+fruits[fruits.length-1];

您可能希望将其包装在辅助函数中。