跟踪javascript对象在递归过程中何时升级



我有一个3级深度对象,具有相同的结构子对象:

var data = {
0:{"level":1,
   "data": {
    0:{"level":2,
     "data": {
        0:{"level":3,
        "data": null},
        1:{"level":3,
        "data": null}
      }
    },
    1:{"level":2,
     "data":{ 
        0:{"level":3,
         "data": null},
        1:{"level":3,
         "data": null}
      }
    } 
   }
}}

和递归函数:

$.each(data, function(k,v){
    rfunc(k,v)
});
function rfunc(key, val) { 
    console.log(val.level)
    if ( val.data ) {
        $.each(val.data, function(key, val) {
            rfunc(key, val) 
        });
    }
} 

哪个控制台,如预期的:
123.3.23.3.请帮助我如何跟踪程序何时移动到"2"级别

感谢关注!

解:http://jsfiddle.net/px3KT/

var data = {
0:{"level":1,
   "data": {
    0:{"level":2,
     "data": {
        0:{"level":3,
        "data": null},
        1:{"level":3,
        "data": null}
      }
    },
    1:{"level":2,
     "data":{ 
        0:{"level":3,
         "data": null},
        1:{"level":3,
         "data": null}
      }
    } 
   }
}}
function recurseData(obj,level){
    console.log(level);
    if(obj){
         $.each(obj, function(key, val) {
            var level = val.level;
            var data_obj = val.data;
            recurseData(data_obj,level); 
        });   
    }
}
recurseData(data);

最新更新