I have an array like this:
['IT/Programming/Frontend/Angular1','IT/Programming/Frontend/Angular2','IT/Programming/Frontend/React Js','IT/Programming/Backedn/C#', 'IT/Programming/Backedn/Java','IT/Programming/Backedn/Python','IT/Networking/Internet']
I want to create a nested object like this, It basically a nested object(hierarchy tree structure):
{
text: 'IT', children: [
{
text: 'Programming', children: [{
text: 'Frontend', children: [
{ text: 'Angular 1'},
{ text: 'Angular 2'},
{ text: 'ReactJS'}
]
}, {
text: 'Backend', children: [
{ text: 'C#'},
{ text: 'Java'},
{ text: 'Python'}
]
}]
},
{
text: 'Networking',children: [
{ text: 'Internet'},
]
}
]
}
I am able to create nested object but not sure how to add key value, here is my code:
function createObject(array) {
let obj = {};
for (let key of array) {
let putInto = obj;
let tokens = key.split('/');
for (let i = 0; i < tokens.length; i++) {
let name = tokens[i];
let value = (i === tokens.length - 1) ? '' : {};
putInto[name] = putInto[name] || value;
putInto = putInto[name];
}
}
return obj;
}
createObject(myArr)