SOURCE

console 命令行工具 X clear

                    
>
console
function findeBelong(data, index) {
    let array = [];
    for (let i = data.length - 1; i >= 0; i--) {
        if (data[i].belongto == index) {
            const obj = {
                id: data[i].id,
                name: data[i].name,
                desc: data[i].about,
                children: []
            }
            array.push(obj);
            data.splice(i, 1);
        }
    }
    return array;
}

function sortTree(arr, all) {
    let tree = (arr, all) => {
        for (let i = 0; i < arr.length; i++) {
            let item = findeBelong(all, arr[i].id);
            for (let j = 0; j < item.length; j++) {
                const obj = {
                    id: item[j].id,
                    name: item[j].name,
                    desc: item[j].desc,
                    children: []
                }
                arr[i].children.push(obj);
            }
            tree(arr[i].children, all)
        }
    }
    tree(arr, all)
}

const menus = [
    {id: 1, name: "1", about: "asdasd", belongto: 0},
    {id: 2, name: "2", about: "asdasd", belongto: 0},
    {id: 3, name: "3", about: "asdasd", belongto: 2},
    {id: 4, name: "4", about: "asdasd", belongto: 2},
    {id: 5, name: "5", about: "asdasd", belongto: 4},
    {id: 6, name: "5", about: "asdasd", belongto: 1},
]

let fa = findeBelong(menus, '0');
sortTree(fa, menus)
console.log(fa)

document.getElementById("result").innerHTML = JSON.stringify(fa,"\t")
<div id="result"></div>