我有一个数组(请注意,tropical 和 pineapple 在同一个数组值中):
'apple', 'pear', 'orange', 'tropical, pineapple'
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个字符串,并用“和”替换最后一个逗号。
我执行:
fruits.join(', ');
fruits.replace(/,([^,]*)$/,'\ and$1');
Run Code Online (Sandbox Code Playgroud)
这给出:
apple, pear, orange, tropical and pineapple
Run Code Online (Sandbox Code Playgroud)
而我需要替换数组中的最后一个逗号,而不是数组值中的任何逗号。
我在找:
apple, pear, orange and tropical, pineapple
Run Code Online (Sandbox Code Playgroud)
这可能吗?
只是不要join在完整的数组上。相反,使用
fruits.slice(0, -1).join(", ")+" and "+fruits[fruits.length-1];
Run Code Online (Sandbox Code Playgroud)
如果您不再需要该数组,您还可以对其进行变异,这让事情变得简单一些:
var last = fruits.pop();
console.log(fruits.join(", ")+" and "+last);
Run Code Online (Sandbox Code Playgroud)
我们还需要考虑空输入的情况,所以它应该看起来像
if (fruits.length <= 1)
return fruits.join(", ");
else
return fruits.slice(0, -1).join(", ")+" and "+fruits[fruits.length-1];
Run Code Online (Sandbox Code Playgroud)
您可能希望将其包装在辅助函数中。