Javascript Recursion Example
by Rich Costello
JavaScript
let countDownFrom = (num) => {
// function that calls itself til it stops. if state is stopping point
if (num === 0) return;
console.log(num)
countDownFrom(num -1)
}
countDownFrom(10);
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 = (categories, parent) => {
let node = {}
categories
.filter(c => c.parent === parent)
.forEach(c => node[c.id] =
makeTree(categories, c.id))
return node
}
console.log(
JSON.stringify(
makeTree(categories, null)
,null, 2)
)