javascrip将具有父子关系的节点数据转成树结构

 1     function toTreeData(data){
 2         var pos={};
 3         var tree=[];
 4         var i=0;
 5         while(data.length!=0){
 6             if(data[i].parentid==0){
 7                 tree.push({
 8                     resid:data[i].resid,
 9                     caption:data[i].caption,
10                     href:data[i].href,
11                     children:[]
12                 });
13                 pos[data[i].resid]=[tree.length-1];    
14                 data.splice(i,1);
15                 i--;
16             }else{
17                 var posArr=pos[data[i].parentid];
18                 if(posArr!=undefined){
19                     
20                     var obj=tree[posArr[0]];
21                     for(var j=1;j<posArr.length;j++){
22                         obj=obj.children[posArr[j]];
23                     }
24 
25                     obj.children.push({
26                         resid:data[i].resid,
27                         caption:data[i].caption,
28                         href:data[i].href,
29                         children:[]
30                     });
31                     pos[data[i].resid]=posArr.concat([obj.children.length-1]);
32                     data.splice(i,1);
33                     i--;
34                 }
35             }
36             i++;
37             if(i>data.length-1){
38                 i=0;
39             }
40         }
41         return tree;
42     }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。