Let’s say you have an array like this:
[
{'id':1,'name':'rajan1',pid:0},
{'id':2,'name':'rajan2',pid:0},
{'id':3,'name':'rajan3',pid:0},
{'id':4,'name':'rajan4',pid:0},
{'id':5,'name':'rajan5',pid:0},
{'id':6,'name':'rajan6',pid:2},
{'id':7,'name':'rajan7',pid:2},
{'id':8,'name':'rajan8',pid:3},
{'id':9,'name':'rajan9',pid:6},
{'id':10,'name':'rajan10',pid:9}
];

And you want to have the objects nested like this:

[
{"myid":1,"MyName":"rajan1","child":[]},
{"myid":2,"MyName":"rajan2","child":[{"id":6,"name":"rajan6","pid":2,"child":[{"id":9,"name":"rajan9","pid":6,"child":[{"id":10,"name":"rajan10","pid":9}]}]},
{"id":7,"name":"rajan7","pid":2}]},
{"myid":3,"MyName":"rajan3","child":[{"id":8,"name":"rajan8","pid":3}]},
{"myid":4,"MyName":"rajan4","child":[]},
{"myid":5,"MyName":"rajan5","child":[]}
]

function getNestedChildren(arr, parent) {
var out = []
for(var i in arr) {
if(arr[i].parent == parent) {
var children = getNestedChildren(arr, arr[i].id)

if(children.length) {
arr[i].children = children
}
out.push(arr[i])
}
}
return out
}

- Copyright © Sonydaman - Powered by SonyDaman