var data = [
{id:1,title:'a',pid:0},
{id:2,title:'a1',pid:1},
{id:3,title:'a11',pid:2},
{id:4,title:'a12',pid:2},
{id:5,title:'a2',pid:1},
{id:6,title:'a21',pid:5}
];
function fn(data,pid){
var result = [] , temp;
for(var i in data){
if(data[i].pid==pid){
result.push(data[i]);
temp = fn(data,data[i].id);
if(temp.length>0){
data[i].children=temp;
}
}
}
return result;
}
1.定义函数体:
这个函数体有返回值:result 每一次计算出来的结果
有形参: data,pid 这个形参是关键因素,因为递归的形参
对形参处理: 对形参进行计算,从而形成结果返回
函数体回调: 将参数传进来 fn(ag1,ag2)
for循环: 对每一个树进行递归
将结果赋值或者有一定的含义,
判断if: 判断是否进行递归
2.有停止回调的条件