数组到逗号分隔的字符串和最后一个标记在jquery中使用’和’而不是逗号

我用逗号分隔的字符串检查了很多关于连接数组的问题和答案,但我的问题是,我正在使字符串对人类可读,即我有标签数组,如果它们是两个标签,那么它将是tag1 and tag2 ,如果它们是100个标签,然后它将是tag1, tag2, ,,,tag99 and tag100用于最后一个使用和之前使用逗号作为分隔符。

有什么办法在JQuery中处理?

你可以使用.slice()

 > var a = [1, 2, 3, 4, 5]; > [a.slice(0, -1).join(', '), a.slice(-1)[0]].join(a.length < 2 ? '' : ' and '); '1, 2, 3, 4 and 5' 
  • a.slice(0, -1).join(', ') :获取除最后一个元素之外的所有元素,并用逗号将它们连接在一起。
  • a.slice(-1)[0] :它是最后一个元素。
  • .join(a.length < 2 ? '' : ' and ') :连接该字符串和最后一个元素,如果至少有两个元素。

另一个快速解决方案是用和替换最后一个逗号。

以下代码:

 var a = [0,1,2,3,4]; a.join(', ').replace(/,(?!.*,)/gmi, ' and'); 

应该做的伎俩。 (另外,根据需要使用正则表达式修饰符)。

一个可能的问题可能是你有大arrays的时候,但它应该工作。

试试这个:

  var substr = new Array("One", "Two", "Three"); var commaList = ''; var i; for (i = 0; i < substr.length; ++i) { if (i == substr.length - 1) commaList += " and " + substr[i]; else commaList += ", " + substr[i]; } console.debug(commaList.substr(2, commaList.length)); 
  1. 创建逗号分隔的字符串
  2. 扭转它
  3. 将第一次出现的“,”更换为“dna”(“和”向后)
  4. 再次反转它
 [1, 2, 3] .join(', ') .split('').reverse().join('') .replace(' ,', ' dna ') .split('').reverse().join('')