tree traversal
by Fernando De Leon
HTML
<button id="press">
Press
</button>
JavaScript
var aTree = {
folder:[
{
name:"father",
children: {
folder:[
{
name:"son1",
children:{
folder:[]
}
},
{
name:"son2",
children:{
folder:[
{
name:"son2.2",
children:{
folder:[]
}
},
{
name:"son2.3",
children:{
folder:[]
}
}
]
}
}
]
}
}
]
};
var mockCreationFolder = function(aFolder,id) {
return new Promise((resolve,reject) => {
console.log("creation bla bla of",aFolder.name," using parentID:",id);
let min = Math.ceil(1);
let max = Math.floor(100);
let rnd = Math.floor(Math.random() * (max - min +1)) + min;
aFolder.id = rnd;
console.log("created and its id is:",aFolder);
resolve(rnd);
});
};
var fetchParent = function(tree,id) {
tree.folder.forEach( aFolder => {
console.log(aFolder.name,"lets create the folder with parentId of",id);
mockCreationFolder(aFolder,id).then((folderId) => {
if(aFolder.children.folder.length > 0) {
fetchParent(aFolder.children,folderId);
}
else {
console.log("the end!");
}
});
});
};
$("#press").on("click",function(e) {
fetchParent(aTree,99);
});