SOURCE

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)
console 命令行工具 X clear

                    
>
console