JSFiddle - React, Tailwind, and code Playground
Traverse array and set child pages.
by Nalin Sajwan
JavaScript
let dataArr = [
{
"name": "Section",
"children": [
{
"name": "Report",
"icon": "fa-table",
"children": [
{
"name": "Positions"
},
{
"name": "Exposure"
},
{
"name": "Securities"
},
// {
// "name": "Samples"
// }
]
},
{
"name": "Securities"
}
]
}
];
function getChildPages(obj) {
if(obj.children) {
let pages = [];
obj.children.forEach((el) => {
let pagesArr = getChildPages(el);
pages = pages.concat(pagesArr);
});
return pages;
} else {
return `/app/page/${obj.name}`;
}
}
function setPaths(data) {
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (obj.children instanceof Array && obj.children.length > 0) {
obj.paths = getChildPages(obj);
setPaths(obj.children);
}
};
};
setPaths(dataArr);
console.log("dataArr ==> ", dataArr);