Tengo un objeto que contiene los siguientes datos. ¿Cómo puedo obtener todos los datos en la clave del título usando la función recursiva? Quiero que una función devuelva una matriz que incluya a, b, c, d, e, f
{ children: [ { children: [ { children: [], title: "a" } ], title: "b" }, { children: [ { children: [], title: "c" }, { children: [], title: "d" } ], title: "e" } ], title: "f" }Siguiendo una solución usando sintaxis moderna. extractTitles produce matrices de títulos de forma recursiva siempre que haya elementos secundarios y los reduce a una única matriz.
const extractTitles = (arr) => arr.reduce((prev, { children, title }) => [...prev, title, ...(children.length ? extractTitles(children) : [])], []); extractTitles(tree); O puede usar un flatmap .
const extractTitles = ({ title, children = [] }) => [title, ...children.flatMap(extractTitles)]; extractTitles(tree); // ["f","b","a","e","c","d"]