编辑代码

const arr = [
    { id: 6, name: '1-2', pId: 1 },
    { id: 7, name: '1-3', pId: 1 },
    { id: 8, name: '2-2', pId: 4 },
    { id: 3, name: '1-1-1', pId: 2 },
    { id: 9, name: '2-1-1', pId: 5 },
    { id: 2, name: '1-1', pId: 1 },
    { id: 5, name: '2-1', pId: 4 },
    { id: 4, name: '2' },
    { id: 1, name: '1' },
];

const toTree = (list) => {
    const nArr = [...list];
    list.forEach(item => {
        if (!item.children) item.children = [];
        if (item.pId) {
            const a = list.findIndex(o => o.id === item.pId)
            if (a > -1) {
                if (nArr[a].children) {
                    nArr[a].children.push(item);
                } else {
                    nArr[a].children = [item]
                }

            }
        }
    });

    return nArr.filter(item => !item.pId);
};

const tree = toTree(arr);
console.log(tree)