Tengo una función recursiva que imprime a cada niño en un objeto profundamente anidado.
const tree = { name: "Anand", children: [ { name: "Dashrath", children: [ { name: "Sitesh", children: [ { name: "Yadnesh", children: [] } ] } ] }, { name: "Machindra", children: [ { name: "Tejas", children: [ { name: "Tanishka", children: [] } ], }, { name: "Amol", children: [], }, { name: "Amit", children: [] } ] } ] } function printTree(t) { if (t.children.length === 0) { return } t.children.forEach((child,index) => { console.log(child.name); printTree(child); }) } printTree(tree);y quiero algo como esto dashrath de 1.ª generación, sitesh de 2.ª generación, yadnesh de 3.ª generación, machindra de 1.ª generación, tejas de 2.ª generación, tanishka de 3.ª generación, amol de 2.ª generación, amit de 3.ª generación
Podría hacer que la función printTree acepte un parámetro de depth y lo incremente adecuadamente con cada llamada recursiva, algo como esto:
function printTree(t, depth = 0) { if (t.children.length === 0) { return } t.children.forEach((child,index) => { // you'd need to do some extra formatting here if you // want ordinals like "1st", "2nd", etc. console.log(`gen ${depth + 1}: ${child.name}`); printTree(child, depth + 1); }) } printTree(tree);