当前位置 : 主页 > 网络编程 > JavaScript >

buildTree.txt

来源:互联网 收集:自由互联 发布时间:2021-07-03
buildTree.txt function buildNodeTree(data) { var res = []; if (!!data data.length) { for (var i = 0, len = data.length, pNode, tmp; i len; i ++) { tmp = data[i]; if (!pNode || pNode.id != tmp.pId) { pNode = findParentNode(res, tmp); } if (!
buildTree.txt
function buildNodeTree(data) {
    var res = [];

    if (!!data && data.length) {
        for (var i = 0, len = data.length, pNode, tmp; i < len; i ++) {
            tmp = data[i];
            if (!pNode || pNode.id != tmp.pId) {
                pNode = findParentNode(res, tmp);                
            }

            if (!pNode) {
                // 没有顶层
                res.push(tmp);
            } else {
                pNode.nodes =  pNode.nodes || [];
                pNode.nodes.push(tmp);
            }
        }       
    }
    
    return res;

    function findParentNode(src, target) {
        var res = false, 
            callee = arguments.callee;

        if (!!src && src.length) {
            for (var i = 0, len = src.length, tmp;i < len; i ++) {
                tmp = src[i];

                if (tmp.id === target.pId) {
                    res = tmp;
                    break;
                } else {
                    res = callee(tmp.nodes, target);

                    if (!!res) {
                        break;
                    }
                }
            }
        }

        return res;
    }
}
上一篇:HTML5.html
下一篇:js-部门选择查询.txt
网友评论