js循环的问题,c币多多!都来抢答!

js里面for循环能不能实现对json多层的遍历?不是单层,而是多层怎么for循环?

js遍历json对象

可以有一个for自然可以有多个

for循环里面在套for循环啊

可以循环套循环,就看你的需要什么了。

for是多层嵌套的,根据你的数据格式循环多层数据

$.post("/crew/group_state/findRri",function(data){
if(data.state=="ok"){
//console.debug(data.data)
$.each(data.data,function(index,val){
console.debug(val.name)
})
}
})

不管是多层嵌套,还是单层的,json数据都是有规律的,只有数组类型的,for循环遍历才是可以的,不是数组的,遍历不起来吧

可以用递归遍历json啊

 function jsoneach(obj, callback,name) {
    if (Object.prototype.toString.call(obj)=="[object Array]") {
        for (var i = 0, len = obj.length; i < len; i++) {
            jsoneach(obj[i], callback,i);
        }
    } else if (typeof obj=="object") {
        for (var i in obj) {
            jsoneach(obj[i], callback,i);
        }
    } else
        callback(name,obj);
}

jsoneach(json, function (n,v) {
    console.log(n,v);
})

1 可以利用一个数组存放对象,然后for改写成while一样的死循环,每次遍历数组的第一个对象遍历过程中遇到对象可以push到数组里
就跟广度优先搜索一样
2 递归
3 蛮力 对象大概有几层深就提前写几层for循环

while 或者 for 循环,for循环里面可以有多个for循环,看你的需求

如果不确定循环次数的情况下建议使用while循环,而for循环一般用在确定循环次数的时候

要是有很多层还是用递归都方法来写比较好吧

//采用递归遍历
var json = {
"a":{
"b":"c",
"d":[{"a":"b","c":"d"},{"e":"f"}]
},
"b":"c"
};

traverseJson(json);

function traverseJson(json){
for(var key in json){
if("string" == typeof json[key]){
console.log(json[key]);
}else{
traverseJson(json[key]);
}
}
}

Java:class MultilayerCircle
{
public static void main(String[] args)
{
for (int i = 0; i <= 4; i++)
{
for (int j = 0; j <= 4; j++)
{
System.out.print("" + i + j + " ");
}
System.out.println("");
}
}
}
输出:00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44

使用循环嵌套啊,

for( ; ; ) {
for( ; ; ) {
for( ; ; ) {

    }
}

}

当不知道层次的时候,用递归应该好一点吧。

外循环控制 上标 内循环控制下标

{【【{},{}】,【{},{}】,【{},{}】...】,【】,【】...} 这种格式的json就可以多层遍历