I have this data of objects , but unable to get expected output we need to iterate on object children and print the name values in a particular order as given below
expected output :
kiran
vish
lav
mall
tried code :
let data = {
name: 'kiran',
children: [{
name: 'vish',
children: [{
name: 'lav',
children: []
},
{
name: 'mall',
children: []
}
]
}]
}
/* kiran
vish
lav
mall */
function indent(inputData) {
function indentHandler(inpData, level, output) {
if (!output) {
let output = '';
}
if (inpData.children.length) {
for (let i = 0; i < inpData.children.length; i++) {
level = level + 1;
console.log(addSpaces(level) + inpData.name + '\n');
indentHandler(inpData.children[i], level);
}
} else {
console.log(addSpaces(level) + inpData.name + '\n');
}
return output;
}
return indentHandler(inputData, 0, '');
}
function addSpaces(level) {
let outp = '';
for (let i = 0; i < level; i++) {
outp = outp + ' ';
}
return outp;
}
indent(data)
https://jsbin.com/yanogok/edit?js,console
please correct my program as I m unable to get correct output