let categories = [
{id: 'animals', parent: null},
{id: 'mammals', parent: 'animals'},
{id: 'cats', parent: 'mammals'},
{id: 'dogs', parent: 'mammals'},
{id: 'dogA', parent: 'dogs'},
{id: 'dogB', parent: 'dogs'},
{id: 'catA', parent: 'cats'},
{id: 'catB', parent: 'cats'},
]
let makeTree = (categories, parent)=>{
let node = {};
categories
.filter(c => c.parent === parent)
.forEach(c => node[c.id]=
makeTree(categories, c.id))
return node;
}
console.log(
makeTree(categories, null),
null,
2
)