function arrayToTree(array, levelName = "level", childrenName = "children") {
function recursive(array, parentId, level) {
const result = [];
for (let item of array) {
if (item.parentId === parentId) {
item[levelName] = level;
const children = recursive(array, item.id, level + 1);
if (children.length) {
item[childrenName] = children;
}
result.push(item);
}
}
return result;
}
return recursive(array, 0, 1);
}
let a = [
{
id:1,
name:'1',
parentId:7,
},
{
id:2,
name:'2',
parentId:7,
},
{
id:3,
name:'3',
parentId:2,
},
{
id:4,
name:'4',
parentId:4,
},
{
id:5,
name:'5',
parentId:3,
},
{
id:7,
name:'0',
parentId:0,
},
]
console.log(arrayToTree(a))
console