[英]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.