tushariscoolster
8/8/2015 - 4:31 PM

Object tree traversal in javascript (with lodash)

Object tree traversal in javascript (with lodash)

var data = {
    "name": "root",
    "contents": [
        {
            "name": "A",
            "contents": [
                {
                    "name": "fileA1",
                    "contents": []
                }
            ]
        },
        {
            "name": "B",
            "contents": [
                {
                    "name": "dirB1",
                    "contents": [
                        {
                            "name": "fileBB1",
                            "contents": []
                        }
                    ]
                },
                {
                    "name": "fileB1",
                    "contents": []
                }
            ]
        }
    ]
};

traverse(data);

function traverse(obj) {
    _.forIn(obj, function (val, key) {
        console.log(key, val);
        if (_.isArray(val)) {
            val.forEach(function(el) {
                if (_.isObject(el)) {
                    traverse(el);
                }
            });
        }
        if (_.isObject(key)) {
            traverse(obj[key]);
        }
    });
}