I have a JavaScript array like this:
[{
name:'a'
level:1
},{
name:'b'
level:2
},{
name:'c'
level:3
},{
name:'d'
level:2
},{
name:'e'
level:1
},{
name:'f'
level:2
},{
name:'g'
level:2
},{
name: 'f',
level: 1
}
]
I need this to be converted into a tree structure based on level
property of objects
[{
name: 'a'
level: 1
children: [{
name: 'b'
level: 2,
children: [{
name: 'c',
level: 3
}]
}, {
name: 'd'
level: 2
}]
}, {
name: 'e'
level: 1,
children: [{
name: 'f'
level: 2
}, {
name: 'g'
level: 2
}]
}, {
name: 'f',
level: 1
}]
I have tried writing many functions and tried many approaches but failed. One thing I realized is that this can be achieved only by writing a recursive function. Please help.
NOTE: the level depth is not limited to 3, it is unknown