【问题标题】:How to add separator to each item in for loop expect last one如何将分隔符添加到 for 循环中的每个项目,除了最后一个
【发布时间】:2015-12-07 17:51:45
【问题描述】:

在下面的循环中,如何从循环中的 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>';
}}

【问题讨论】:

  • 如果每个键都包含在&lt;span&gt; 中,分隔符有什么用?也许你的意思是'&lt;span&gt;' + key + '&lt;/span&gt;' + sep
  • @Nimrod,span 用于 css 样式

标签: javascript jquery


【解决方案1】:

您可以使用标准的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(',');

【讨论】:

  • 我确信这会奏效,但有一个问题。结果变量先前已声明并设置为字符串。然后它附加了 for 循环的结果。您将如何相应地修改您的答案? (对不起,我已经修改了我的问题以包含它)。
  • 您可以将消息向下移动几行,这将使您的代码更具可读性,否则将结果数组重命名为任何其他值以避免冲突。
【解决方案2】:

简单 - 不是将分隔符放在 键之后,而是将它放在 之前,并跳过第一个元素(知道元素何时是第一个元素比最后一次):

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

【讨论】:

    【解决方案3】:

    请注意,在 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(',');
    

    【讨论】:

      【解决方案4】:

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

      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 的连接解决方​​案是创建整个字符串的更好方法。

      【讨论】:

        【解决方案5】:

        你为什么还要添加它?

        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 = ',';
        }}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-30
          • 2019-11-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多