Search code examples
javascriptobjectloopstraversal

javascript traversing through an object


I have an object that is dynamically created. Here's a simple example:

global.data {
    children: [
        0: {
            children:  [
                0: {
                   children: value 
                }
            ]
        }
    ]

}

What I want to do is check if the object (global.data) has a property of 'children', grab properties from it, and send that object ('children') back through the loop to see if it has a property of 'children' of it's own. I want it to keep going until there are no more 'children' left to traverse though.


Solution

  • Run a while loop till it reaches to deepest. jsfiddle

    global = {};
    global.data = {
        children: [
             {
                children:  [
                     {
                       children: "value"
                    }
                ]
            }
        ]
    }
    
    var obj = global.data;
    
    while( typeof obj == 'object' && typeof obj.children == 'object'){
      obj = obj.children[0];
    }
    obj = obj.children ? obj.children  : obj;​
     // at this point obj is either undefined or has no children property.