【问题标题】:Append Comma on Converting Array elements to String在将数组元素转换为字符串时附加逗号
【发布时间】:2018-05-30 04:05:13
【问题描述】:

请您看看这个演示,让我知道如何在当前输出的数组元素之间附加,

p[data-st!=all]p[data-st!=men]p[data-st!=bi]

p[data-st!=all], p[data-st!=men], p[data-st!=bi]

var filters = ['all',null,'men','bi',null];
var text = '';
var i;
for (i = 0; i < filters.length; i++) { 
if(filters[i]!= null){
  text += "p[data-st!="+filters[i]+"]";
}
    
}
console.log(text);
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    var filters = ['all',null,'men','bi',null];
    var text = '';
    var i;
    for (i = 0; i < filters.length; i++) { 
    if(filters[i]!= null){
      text += (i===0?"":", ") + "p[data-st!="+filters[i]+"]";
    }
        
    }
    console.log(text);
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    这也是另一种解决方案。您可以将每个 p 括号推到一个数组中并加入它们。 如果您不太担心内存和迭代。 Hear 是一个干净且易于阅读的解决方案。如果您还不熟悉,它将向您介绍两个有用的数组方法。

    function parseString(word)
    {
      return `p[data-st!=${word}]`
    }
    
    var filters = ['all',null,'men','bi',null];
    let text = filters
    .filter(val => !!val)
    .map(val => parseString(val))
    .join(',');
    
    console.log(text);

    【讨论】:

    • 请注意,!!filter 的强制转换是不必要的。除此之外,在我的 10 分钟后编辑您的答案以包含近乎逐行重复的答案有点奇怪......但我想您对模板文字的使用也可能是 OP 的学习点。
    【解决方案2】:

    您可以使用数组方法完成此操作(并稍微清理一下)。

    var filters = ['all',null,'men','bi',null];
    
    var result = filters
                     .filter(n=>n)
                     .map(n => "p[data-st!="+n+"]")
                     .join(", ");
    
    console.log(result);
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

      【解决方案3】:

      您可以对字符串执行一个简单的 for 循环,并在每个右括号后添加一个逗号。不是最好的选择,但它会起作用。

      var newString = '';
      for(let i = 0; i < text.length; i++)
      {
        let char = text[i];
        newString += char;
        if(char === ']') newString += ',';
      }

      【讨论】:

        【解决方案4】:

        创建一个新的数组变量并通过添加p[data-st! 文本来推送修改后的变量,然后使用join 方法和逗号(,)作为分隔符来连接元素

        var filters = ['all', null, 'men', 'bi', null];
        var inArray = []
        var i;
        filters.forEach(function(item) {
          if (item !== null) {
            inArray.push("p[data-st!=" + item + "]")
          }
        })
        console.log(inArray.join(','));

        【讨论】:

          【解决方案5】:
          var filters = ['all',null,'men','bi',null];
          var a = [];
          for(i in filters){
           if(filters[i]!= null){
            var b = [];
            b = "p[data-st!="+filters[i]+"]";
            a.push(b); 
           }
          }
          console.log(a.join());
          

          【讨论】:

            猜你喜欢
            • 2016-02-01
            • 2012-10-27
            • 1970-01-01
            • 2021-12-18
            • 2017-02-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多