How do I use jQuery.map to recursively modify nested objects

Viewed 1121

How do I recursively modify nested objects using jQuery.map (or vanilla JS)?

// Original Object
var data = [{
    name: 'Parent',
    children: [{
        name: 'Child',
        children: [{
            name: 'ChildChild'
        }]
    }]
}];

// Resulting Object
var data = [{
    name: 'Parent',
    text: 'Parent',
    children: [{
        name: 'Child',
        text: 'Child',
        children: [{
            name: 'ChildChild',
            text: 'ChildChild'
        }]
    }]
}];

I currently do this within the top level using jQuery.map like so, but don't know how to achieve this recursively.

$.map(data, function(obj){
    return $.extend(obj, {text: obj.name});
});

https://jsfiddle.net/minlare/0p0zb8vw/

1 Answers
Related