I need to convert an array of string paths into nested JSON without duplicates.
I'm trying to build a JSON file from an array of string paths. When building the JSON I'd like duplicate folder names to be nested (i.e. "catalog" would have "product" and "non-product" as children). Each object would have a name
and an optional children
array.
let paths = [
"catalog/product/category/sub-category/page",
"catalog/non-product/page"
];
let pages = {};
paths.forEach(path => {
let levels = path.split("/");
let file = levels.pop();
// iterate over each path and build JSON
});
console.log(pages);
Ideal output of pages
would be:
{
"name": "catalog",
"children": [
{
"name": "product",
"children" : [
{
"name": "category",
"children": [
{
"name": "sub-category",
"children": [
{
"name": "page",
}
]
}
]
}
]
},
{
"name" : "non-product",
"children" : [
{
"name" : "page"
}
]
}
]
}