Generators - Recursively log tree data
Generators - Recursively log tree data
by Nirvanachain
JavaScript
var treeData = [
{ id: "0" },
{
id: "1",
children: [
{
id: "1.1",
children: [
{
id: "1.1.1",
children: [
{
id: "1.1.1.1",
children: [
{ id: "1.1.1.1.1" },
{ id: "1.1.1.1.2" },
{ id: "1.1.1.1.3" }
]
},
{ id: "1.1.1.2" },
{ id: "1.1.1.3" }
]
},
{ id: "1.1.2" },
{ id: "1.1.3" },
]
},
{ id: "1.2" },
{ id: "1.3" }
]
},
{ id: "2" },
{ id: "3" }
];
function* processData(data){
if (!data) { return; }
for (var obj of data) {
yield obj.id;
if (obj.children) {
yield processData(obj.children);
}
}
}
var it = processData(treeData);
for (var i of it) {
console.log(i);
if (i.done) {
console.log('done!!!');
}
console.log(i);
}
/**
Example with a while-loop
var res = it.next();
while(!res.done){
console.log(res.value);
res = it.next();
}
**/