js將有父子關(guān)系的數(shù)據(jù)轉(zhuǎn)換成樹形結(jié)構(gòu)數(shù)據(jù),最簡單的方法

js代碼:

   function buildTree(list){
        let temp = {};
        let tree = [];
        for(let i in list){
            temp[list[i].treeId] = list[i];
        }
        for(let i in temp){
            if(temp[i].parentTreeId) {
                if(!temp[temp[i].parentTreeId].children) {
                    temp[temp[i].parentTreeId].children = [];
                }
                temp[temp[i].parentTreeId].children.push(temp[i]);
            } else {
                tree.push(temp[i]);
            }
        }
        return tree;
    }
    buildTree(data)

//這里需要確認的就是id(文中的treeId)和父id(parentTreeId)
//以及父子之間的聯(lián)系屬性(children ),對應(yīng)替換就可以了

原始數(shù)據(jù)示例:

    var data = [
        {
            "name": "aaa",
            "treeId": "1",
            "type": 1
        },
        {
            "name": "bbb",
            "parentTreeId": "1",
            "treeId": "2",
            "type": 2
        },
        {
            "name": "ccc",
            "parentTreeId": "1",
            "treeId": "3",
            "type": 3
        },
        {
            "name": "ddd",
            "parentTreeId": "1",
            "treeId": "4",
            "type": 2
        },
        {
            "abb": "eee",
            "name": "qwe123",
            "parentTreeId": "2",
            "treeId": "5",
            "type": 1
        },
        {
            "name": "fff",
            "parentTreeId": "2",
            "treeId": "6",
            "type": 2
        },
        {
            "name": "ggg",
            "parentTreeId": "3",
            "treeId": "7",
            "type": 2
        },
        {
            "name": "hhh",
            "parentTreeId": "3",
            "treeId": "8",
            "type": 2
        },
        {
            "name": "iii",
            "parentTreeId": "3",
            "treeId": "9",
            "type": 3
        },
        {
            "name": "jjj",
            "parentTreeId": "3",
            "treeId": "10",
            "type": 2
        },
        {
            "name": "kkk",
            "parentTreeId": "5",
            "treeId": "11",
            "type": 2
        },
        {
            "name": "lll",
            "parentTreeId": "5",
            "treeId": "12",
            "type": 2
        },
        {
            "name": "mmm",
            "parentTreeId": "5",
            "treeId": "13",
            "type": 2
        },
        {
            "name": "nnn",
            "parentTreeId": "5",
            "treeId": "14",
            "type": 2
        }
    ];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容