javascript 將treeNode 轉換id和pid的Array


function treeTolist(treeNodes, opt) {

        if (!opt) {
            opt = {};
            opt.key = "id";
            opt.parent = "pid";
            opt.children = "children";
        }


        var NodeList = [];


        function appenChildren(nodes) {

            for (var i = 0; i < nodes.length; i++) {

                var node = nodes[i];

                //如果沒有上層節點那么就是根節點
                if (node.parentNode == null) {
                    node.Level = 0;
                    node[opt.parent]=0;
                }
                //判斷是否有子節點
                if (node[opt.children] && node[opt.children].length > 0) {
                    //所有子節點
                    for (var k = 0; k < node.children.length; k++) {
                        node[opt.children][k][opt.parent] = node[opt.parent];
                        node[opt.children][k].Level = node.Level + 1;
                        node[opt.children][k].parentNode = node;
                    }

                    appenChildren(node.children);

                }
                if(node.hasOwnProperty("parentNode"))
                    delete node.parentNode;
                if(node.hasOwnProperty(opt.children))
                    delete node[opt.children];
                NodeList.push(node);


            }
        }

        appenChildren(treeNodes);

        return NodeList;

    }


    var TreeNodes = [
        {
            "id": 1,
            "parent": 0,
            "children": [
                {
                    "id": 2,
                    "parent": 1,
                    "children": [
                        {
                            "id": 3,
                            "parent": 2,
                            "children": [
                                {
                                    "id": 4,
                                    "parent": 3,
                                    "children": [
                                        {
                                            "id": 5,
                                            "parent": 4,
                                            "children": [
                                                {
                                                    "id": 6,
                                                    "parent": 5,
                                                    "children": [
                                                        {
                                                            "id": 7,
                                                            "parent": 6,
                                                            "children": [
                                                                {
                                                                    "id": 8,
                                                                    "parent": 7,
                                                                    "children": [
                                                                        {
                                                                            "id": 9,
                                                                            "parent": 8,
                                                                            "children": [
                                                                                {
                                                                                    "id": 10,
                                                                                    "parent": 9,
                                                                                    "children": []
                                                                                }
                                                                            ]
                                                                        }
                                                                    ]
                                                                }
                                                            ]
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ];

    var treeNodeList = treeTolist(TreeNodes, {
        key: "id",
        parent: "pid",
        children: "children"
    });
    console.log(JSON.stringify(treeNodeList));

技術交流QQ群:15129679


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM