Looking for help, to generate a nested object tree from a string.
Example 1
A > B > C
Should result in object:
{
name: A,
children: [{
name: B,
children: [{
name: C
}],
}]
}
Example 2
A > B > C | A > D > E
Result in object:
{
name: A,
children: [{
name: B,
children: [{
name: C
},{
name: D,
children: [{
name: E
}],
}],
}]
}
What I have so far:
Problem is, I am not sure how to properly solve the nesting.
let categoryTree = {
categories: [{}]
}
const split = (string, seperator = '|', splitter = ' > ') => {
if (!string.includes(seperator)) {
let results = string.split(splitter)
for (let i = 0; i < results.length; i++) {
let lastNode = 0
if (i != 0) {
lastNode = i - 1
}
makeTree(results[i], results[lastNode], i)
}
}
console.log(categoryTree)
return categoryTree
}
const makeTree = (item, parent, i) => {
if (categoryTree.categories[parent].name === item && categoryTree.categories[parent].name) {
console.log('IN')
categoryTree.categories[parent].categories.push({
name: item,
categories: [{}]
})
} else {
categoryTree.categories.push({name: item, categories: []})
}
}
A > B > C | A > B > E