Вы можете создать функцию, которая принимает строку и split
ее в массив, а затем вы можете использовать метод reduce
в этом массиве для построения вложенной структуры.
const string = 'root/app/index.html';
const parse = str => {
const result = {}
str.split('/').reduce((r, name, i, a) => {
Object.assign(r, {name, type: a[i + 1] ? 'box' : 'item'})
return a[i + 1] ? (r.children = {}) : r
}, result)
return result;
}
console.log(parse(string))