recursion mpjme
by Artem
JavaScript
'use strict';
let categories = [
{id: 'animals', parent: null},
{id: 'mammals', parent: 'animals'},
{id: 'cats', parent: 'mammals'},
{id: 'dogs', parent: 'mammals'},
{id: 'chihuahua', parent: 'dogs'},
{id: 'labrador', parent: 'dogs'},
{id: 'persian', parent: 'cats'},
{id: 'siamese', parent: 'cats'},
];
let makeTree = (arr, category) => {
let node = {};
arr
.filter(c => c.parent === category)
.forEach(c => node[c.id] = makeTree(arr, c.id));
return Object.keys(node).length ? node : null;
};
console.log(makeTree(categories, null));