const Data = [
{
label: '1',
id: 1,
parentId: 0
},
{
label: '1-1',
id: 11,
parentId: 1
},
{
label: '1-1-1',
id: 111,
parentId: 11
},
{
label: '1-1-1-1',
id: 1111,
parentId: 111
},
]
const deepTree = (list: [], id: number, pName?: string) =>
list
.filter((item) => item[pName] === id)
.map((item) => {
const newArray = { ...item };
const childrenArray = deepTree(list, item.id, pName);
if (childrenArray ?.length) {
newArray.children = childrenArray
}
return newArray
});
const newData = deepTree(Data, 0 , 'parentId');