-1

同じ構造化された子を持つ 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) 
        });
    }
} 

予想どおり、どのコンソール:
1 2 3 3 2 3 3 プログラムがいつレベルを "2" に戻すかを追跡する方法を教えてください。

ご清聴ありがとうございました!

4

1 に答える 1

0

それぞれ1つを使用するソリューション(再帰):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);
于 2013-03-23T12:44:44.973 に答える