如何为for循环中的每个项添加分隔符,期望最后一个

时间:2011-02-16 05:26:17

标签: javascript jquery

在下面的循环中,如何从循环中的latt键中删除逗号?

var result = 'These are the results: ';
jQuery.each(item['keyterms']['terms'],function(i,kw){
for (key in keywords){
sep = ',';
    if (keywords[key] > 5) result += '<span>' + key + sep + '</span>';
}}

5 个答案:

答案 0 :(得分:8)

您可以使用标准的javascript函数JOIN

,而不是在循环内插入逗号
var results = Array();

for (key in keywords){
    if (keywords[key] > 5) results.push('<span>' + key + '</span>');
}

var message = 'These are the results: ' + results.join(',');

答案 1 :(得分:1)

简单 - 不是将放在之后的,而是将放在之前,然后跳过第一个元素(更容易知道元素的第一个元素,而不是当它是最后一次):

var first = true;
var result = '';
for (key in keys) {
  var sep = first ? '' : ', ';
  result += sep + key;
  first = false;
}

答案 2 :(得分:1)

请注意,对于JS中的字符串连接,数组join(separator)方法比+运算符更快。所以我推荐Nazariy的解决方案。稍作改动:

var result = Array();
for (key in keywords){
    if (keywords[key] > 5) result.push(['<span>', key, sep, '</span>'].join(''));
}}
result = result.join(',');

答案 3 :(得分:0)

如果您只关心如何删除最后一个分隔符,那么这应该有效:

jQuery.each(item['keyterms']['terms'],function(i,kw){
for (key in keywords){
sep = ',';
    if (keywords[key] > 5) result += '<span>' + key + sep + '</span>';
}}
result = result.substring(0, result.length - (sep+"</span>").length) + "</span>");

否则,Nazariy的连接解决方​​案是创建整个字符串的更好方法。

答案 4 :(得分:0)

你为什么要添加它?

var result = 'These are the results: ';
jQuery.each(item['keyterms']['terms'],function(i,kw){
var sep = '';
for (key in keywords){
  if (keywords[key] > 5) result += '<span>' + sep + key + '</span>';
  sep = ',';
}}