ztree tree id, pid turn into children format

 

Shanlv menu

Because the menu selected bootstrap tree, and the desired format is a format similar to children

was nodes = [
    name {: "parent node. 1" , Children: [
        name {: "child node 1" },
        name {: "child node 2" }
    ]}
];

The background data is id, pid format

was nodes = [
    ID {: 1, pId: 0, name: "a parent node" },
    ID {: . 11, pId: 1, name: "child node 1" },
    ID {: 12 is, pId:. 1, name: "child node 2" }
];

 

So this time it should be a format conversion

function:

/*
Configuration data treecode treePcode code * data of a parent node of the code ztree
* / 
Function initData (Data, code) {
     // Step: Construction of two objects child objects, the parent-child relationship object 
    var treeData;
     for ( var I = 0, childObj = {}, relatArr = [], = relatArr1 [], relatObj = {}, = {Nodes Nodes: []}; I <data.length; I ++ ) {
         var _rowData = Data [I];
         IF (_rowData.treePCode == '0' ) {
             var _pnode = _rowData .treeCode;
             IF (Nodes [_rowData.treeCode] === undefined) {
                nodes[_rowData.treeCode]={nodes:[]};
            }
            nodes.nodes=nodes[_rowData.treeCode].nodes;
        }else{
            if(nodes[_rowData.treeCode]===undefined){
                nodes[_rowData.treeCode]={text:_rowData.name,nodes:[],obj:_rowData,href:_rowData.link};
            }else{
                nodes[_rowData.treeCode].text=_rowData.name;
                nodes[_rowData.treeCode].obj=_rowData;
                nodes[_rowData.treeCode].href=_rowData.link;
            }
            if(nodes[_rowData.treePCode]===undefined){
                nodes[_rowData.treePCode]={text:'',nodes:[],obj:{},href:''};
            }
            nodes[_rowData.treePCode].nodes.push(nodes[_rowData.treeCode]);
        }
    }
    // remove nodes empty key 
    for ( var K in nodes) {
         IF (K == 'nodes' ) {
             Continue ;
        }
        if(nodes[k].nodes.length==0){
            delete nodes[k].nodes;
        }
    }
    console.log(nodes.nodes);
}

 

 

 

example:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
  <script type="text/javascript">
was nodes = [
    {id:73, pId:0,treeCode:73, treePCode:0, name: "父节点1"},
    {id:7301, pId:73,treeCode:7301, treePCode:73, name: "子节点1"},
    {id:73011, pId:7301,treeCode:73011, treePCode:7301, name: "子节点1"},
    {id:73012, pId:7301, treeCode:73012, treePCode:7301,name: "子节点1"},
    {id:7302, pId:73, treeCode:7302, treePCode:73,name: "子节点1"},
    {id:73021, pId:7302,treeCode:73021, treePCode:7302, name: "子节点1"},
    {id:73022, pId:7302,treeCode:73022, treePCode:7302, name: "子节点1"}
];
window.onload=function(){
    console.log(initData(nodes,0))
}
/*
Configuration data treecode treePcode code * data of a parent node of the code ztree
* / 
Function initData (Data, code) {
     // Step: Construction of two objects child objects, the parent-child relationship object 
    var treeData;
     for ( var I = 0, childObj = {}, relatArr = [], = relatArr1 [], relatObj = {}, = {Nodes Nodes: []}; I <data.length; I ++ ) {
         var _rowData = Data [I];
         IF (_rowData.treePCode == '0' ) {
             var _pnode = _rowData .treeCode;
             IF (Nodes [_rowData.treeCode] === undefined) {
                nodes[_rowData.treeCode]={nodes:[]};
            }
            nodes.nodes=nodes[_rowData.treeCode].nodes;
        }else{
            if(nodes[_rowData.treeCode]===undefined){
                nodes[_rowData.treeCode]={text:_rowData.name,nodes:[],obj:_rowData,href:_rowData.link};
            }else{
                nodes[_rowData.treeCode].text=_rowData.name;
                nodes[_rowData.treeCode].obj=_rowData;
                nodes[_rowData.treeCode].href=_rowData.link;
            }
            if(nodes[_rowData.treePCode]===undefined){
                nodes[_rowData.treePCode]={text:'',nodes:[],obj:{},href:''};
            }
            nodes[_rowData.treePCode].nodes.push(nodes[_rowData.treeCode]);
        }
    }
    // remove nodes empty key 
    for ( var K in nodes) {
         IF (K == 'nodes' ) {
             Continue ;
        }
        if(nodes[k].nodes.length==0){
            delete nodes[k].nodes;
        }
    }
    return (nodes.nodes);
}
  </script>
 </body>
</html>

 

Guess you like

Origin www.cnblogs.com/pengfei25/p/11095417.html