我有一个数组(请注意热带和菠萝的数组值相同):
'apple', 'pear', 'orange', 'tropical, pineapple'
我希望将其变成一个字符串,并用'和'替换最后一个逗号。
我表演:
fruits.join(', ');
fruits.replace(/,([^,]*)$/,'\ and$1');
这给出了:
apple, pear, orange, tropical and pineapple
我需要替换数组中的最后一个逗号而不是数组值中的任何逗号。
我正在寻找:
apple, pear, orange and tropical, pineapple
这可能吗?
答案 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];
您可能希望将其包装在辅助函数中。