JS遍历树结构

原创 448894534 随笔 JavaScript 219阅读 2017-12-29 14:26:07 举报

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
</style>
</head>
<body>
</body>
<script type="text/javascript">
var data ={
children:[
{pid:"1",
children:[
{pid:"5",children:[
{pid:"21",},
{pid:"22",},
{pid:"23",},
{pid:"24"}],},
{pid:"6",},
{pid:"7",},
{pid:"8"}],},
{pid:"2",
children:[
{pid:"9",},
{pid:"10",},
{pid:"11",},
{pid:"12"}],},
{pid:"3",
children:[
{pid:"13",children:[
{pid:"25",children:[
{pid:"29",},
{pid:"30",},
{pid:"31",},
{pid:"32"}],},
{pid:"26",},
{pid:"27",},
{pid:"28"}],},
{pid:"14",},
{pid:"15",},
{pid:"16"}],},
{pid:"4",
children:[
{pid:"17",},
{pid:"18",},
{pid:"19",},
{pid:"20"}],}],
pid:"0",
};
//*不是按照层级关系遍历****
// var arr_pid = [];
// arr_pid.push(data.pid);
// function pids(arr){
// console.log(arr)
// for(var i = 0;i<arr.length;i++){
// arr_pid.push(arr[i].pid);
// if (arr[i].children) {
// pids(arr[i].children);
// }
// }
// }
// pids(data.children);
// console.log(arr_pid);
//*
按照层级关系遍历****
var arr=[data.children];
var arr1=[];
aa(arr);
var child_arr=[];
function aa(child){
child_arr=[];
for(var j=0;j<child.length;j++){
for(var i=0;i<child[j].length;i++){
arr1.push(child[j][i].pid);
if(child[j][i].children){
child_arr.push(child[j][i].children)
}
}
}
if(child_arr.length!=0){
aa(child_arr);
}
}
console.log(arr1);

</script>
</html>

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复