繁体   English   中英

使用 js 或 jquery 遍历数组并附加到 html 的更好方法

[英]Better way to iterate over array and append to html using js or jquery

我想知道是否有更短/更好的方法来遍历包含 {key:[array],key2:[array]} 的数组

var ray = {'A':['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'],
'B': ['m', 'n', 'b', 'v', 'c', 'x', 'z'],
'C': ['o', 'i', 'd', 'f', 'j', 'a', 'l', 'a', 'd']
}

目前我有

    function(data) {
        var ray = data.result;
        $.each(ray, function() {
          if(this == ray.A){
            $.each(this, function(i, v) {
              $("#list1").append('<span class="tag">' + v + "</span>");
            });
          }
          if(this == ray.B){
            $.each(this, function(i, v) {
              $("#list2").append('<span class="tag2">' + v + "</span>");
            });
          }

        });
    }

等..

有没有更好的方法来做到这一点而不过度重复?

使用$("#list"+j).append循环,因为list具有相同的名称。

 var ray = {'A':['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'], 'B': ['m', 'n', 'b', 'v', 'c', 'x', 'z'], 'C': ['o', 'i', 'd', 'f', 'j', 'a', 'l', 'a', 'd'] } function arr() { var j=0; $.each(ray, function() { j++; $.each(this, function(i, v) { $("#list"+j).append('<span class="tag">' + v + "</span>"); }); }); } arr();
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="list1"> </div> <div id="list2"> </div> <div id="list3"> </div>

根据您的数据类型,您通常可以执行以下操作...

Object.keys(ray).forEach(k => ray[k].forEach(e => doSomethingWith(k,e)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM