I have an object that contains the following data. How can I get all the data in the title key using the recursive function? I want a function return a array include a, b, c, d, e, f
{
children: [
{
children: [
{
children: [],
title: "a"
}
],
title: "b"
},
{
children: [
{
children: [],
title: "c"
},
{
children: [],
title: "d"
}
],
title: "e"
}
],
title: "f"
}
Following a solution using modern syntax. extractTitles recursively produces arrays of titles as long as there are children and reduces them to a single array.
const extractTitles = (arr) =>
arr.reduce((prev, { children, title }) => [...prev, title, ...(children.length ? extractTitles(children) : [])], []);
extractTitles(tree);
Or you can use flatmap.
const extractTitles = ({ title, children = [] }) =>
[title, ...children.flatMap(extractTitles)];
extractTitles(tree);
// ["f","b","a","e","c","d"]