const items = [
{ id: 1, name: 'Item 1', parentId: null },
{ id: 2, name: 'Item 1.1', parentId: 1 },
{ id: 3, name: 'Item 1.2', parentId: 1 },
{ id: 4, name: 'Item 2', parentId: null },
{ id: 5, name: 'Item 2.1', parentId: 4 },
];
const res = [];
items.forEach(item => {
if (!item.parentId) {
const crt = item;
items.forEach(ele => {
if (ele.parentId === item.id) {
crt.children ? crt.children.push(ele) : crt.children = [ele];
}
})
res.push(crt)
}
})
console.log('res',res)