【问题标题】:JS - List to an array separated by comaJS - 列出以逗号分隔的数组
【发布时间】:2015-04-06 18:45:00
【问题描述】:

我有一个输出显示为列表的函数:

email1
email2
email3
…

我想要实现的是有一个看起来像这样的数组输出:

email1, email2, email3, …

知道如何转换列表吗?

$(document).ready(function(){
        $(".select_email").click(function(){
           var val = [];

           $(':checkbox:checked').each(function(i){
                val[i] = $(this).val();
                var arr = jQuery.makeArray( val[i] );
                arr.push(val[i]);
                document.getElementById("demo").innerHTML = arr;
                console.log(arr);
            });
        });
    });

【问题讨论】:

    标签: javascript php jquery arrays list


    【解决方案1】:

    你是一个数组。我只是转换这个员工。

        $(document).ready(function(){
        $(".select_email").click(function(){
           var val = [];
    
           $(':checkbox:checked').each(function(i){
                val[i] = $(this).val();
                var arr = jQuery.makeArray( val[i] );
                arr.push(val[i]);
    
                document.getElementById("demo").innerHTML = val[i];
                console.log(val[i]);
                //we just convert array to string by separator comma
                console.log(arr.join(", "));
    
            });
        });
    });
    

    【讨论】:

    • 只有最后一封电子邮件会显示在 DOM 中,您正在覆盖每次迭代
    • 嗨,我创建了 jsfiddle 演示,它工作正常。 jsfiddle.net/kmb645/hqe4wuxc/18
    • 但小提琴使用的代码与答案中显示的不同
    【解决方案2】:

    这里是快速解决方案

    $(document).ready(function(){
      $(".select_email").click(function(){
      var val = $(':checkbox:checked').map(function(){ return this.value; }).toArray().join(', ');
      document.getElementById("demo").innerHTML = val;
     });
    });
    

    【讨论】:

      【解决方案3】:

      您使用额外的数组使事情变得过于复杂。您只需要一个数组并使用join()

      $(".select_email").click(function () {
          var val = [];
      
          $(':checkbox:checked').each(function (i) {
              val.push($(this).val());// push values to array    
          });
          $('#demo').html(val.join()); // join array to print
      
      });
      

      默认情况下,join() 使用逗号作为分隔符,如果您想要额外的空格或不同的分隔符作为参数传递,例如 join(', ')

      【讨论】:

        【解决方案4】:

        您正在做的是打印值。你已经有了列表

        $(':checkbox:checked')
        

        您正在对其执行 $.each 操作。您可以通过指定第二个参数来获取项目。

        $(selector).each(function(index, elem){
             //do stuff
        })
        

        有关更多信息,您可以查看 API 文档 https://api.jquery.com/each/

        【讨论】:

          【解决方案5】:

          只需将 var "txt" 替换为您的数据即可。

          例子:

          <textarea id="txtarea">
          line1
          line2
          linea3</textarea>
          
              function transform(){
                  var txt = document.getElementById('txtarea').value;
                  txt = txt.replace(/(\n|\r|\r\n)/g, '<br/>');
                  var temp = txt.split("<br/>");
          
                  var rsp = '';
          
                  for (index = 0; index < temp.length; ++index) {
                      rsp += temp[index]  + " ";
                  }
          
                  console.log(rsp);
              }
          

          输出:

          line1 line2 line3

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-01-29
            • 1970-01-01
            • 1970-01-01
            • 2018-07-18
            • 2018-08-07
            • 2017-06-27
            相关资源
            最近更新 更多