Recursion Javascript using JSON -


my goal isn't track number of times recursive call happens rather depth level in json. trying create html table proper indentations using recursion. have no way of seeing level @ determine "indent" child element relative parent.

i have following structure:

{    "sminforec":{       "tsutc":{          "@attributes":{             "hex":"404211d8",             "intermediate":"1078071768",             "uom":""          },          "#text":"2014-03-05t16:22:48z"       },       "trig":{          "@attributes":{             "hex":"0003",             "intermediate":"3",             "uom":""          },          "#text":"3"       },       "gid":{          "@attributes":{             "hex":"0c90",             "intermediate":"3216",             "uom":""          },          "dlid":{             "#text":"12"          },          "mlid":{             "#text":"144"          }       },       "toh":{          "@attributes":{             "hex":"0005540f",             "intermediate":"349199",             "uom":"hours"          },          "#text":"96.999799822"       }    } } 

i recursively iterate , know depth of level processing i've been hacking @ while , not able calculate depth correctly ideas?

edit***

function iterate(obj,callback){                       (key in obj){                        if(typeof obj[key] === 'object' && key !== "hex" && key !== "intermediate")                         {                            console.log("**********************************************");                            console.log("key: " + key);                            console.log("obj[key]: " + obj[key]);                            console.log("level inside iterate callback: "  + level);                            console.log("**********************************************");                            iterate(obj[key],callback);                          }                        else if(key !="uom")                        {                            console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");                            console.log("key: " + key);                            console.log("obj[key]: " + obj[key]);                            console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");                            callback(obj[key]);                        }                        }                       console.log("level: " + level);                     }                      iterate(jsondata[namespace].data, function(obj){                       level++;                       console.log("---------------------------------------------");                       console.log(obj);                       console.log("level inside iterate: " + level);                       console.log("---------------------------------------------");                     }); 

i'm feeling generous...

var maxdepth = 0; function traverse(node, depth) {     maxdepth = math.max(maxdepth, depth);     //...do data in node if want...     //process children, if     (var in node) {         traverse(node[i], depth+1);     } }  traverse(your-json); 

Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -