Hello!
I want to have this output:
{ name: "Saviole", role: "ceo", children:[{ name: "Mary", role: "supervisorA" , children: [{name: "Anna", role: "worker"}]},
{ name: "Louis", role: "supervisorB" }] }
This is the function I wrote:
const users = [
{name: "Anna", role: "worker"},
{ name: "Mary", role: "supervisorA" },
{ name: "Louis", role: "supervisorB" },
{ name: "Saviole", role: "ceo" }
];
const recursiveAddToTree = (parent, child, grandChildren, users)=>{
let tree = {};
users.forEach(( user)=>{
if(user.role===parent){
tree ={...user}
} else if(user.role===child){
tree = {...tree, chidren:[...[user]]}
} else {
users.forEach(userChild=>{
if(userChild.role===child){
tree = {...tree, children:[...[{...userChild, chidren: [...[user]]}]]}
}
})
}
})
return tree;
}
const createSchema = users =>{
return recursiveAddToTree("ceo", "supervisor","worker", users)
}
Can you help to solve this issue? I don’t understand why it doesn’t working?