$(document).ready(function() {
var datas = [{
id : 1,
name : 'a',
parentId : 0
},{
id : 2,
name : 'a-b',
parentId : 1
}];//所有的list集合。
var dataArray = [];//用来存放排好序的list集合。
$.each(datas,function(i,p){
if(p.parentId== 0) {//获取父ID为0的集合
p.children = [];
dataArray.push(p);//将对应数据存入dataArray全局变量中。
}
})
dataArray = treeGroup(datas,dataArray);//传入datas所有list集合和dataArray集合
console.log(dataArray);//已经遍历好的list集合。
});
function treeGroup(datas, dataArrays){
var arr = [];//每次需要遍历的集合
$.each(dataArrays,function(index,po){//遍历每次需要遍历的集合
$.each(datas,function(i,p){//遍历所有集合
if (p.parentId == po.id) {
p.children = [];
arr.push(p);//需要继续遍历的集合
po.children.push(p);//将遍历好的集合传入dataArray中。
}
});
});
if (arr.length > 0) {//有需要遍历的集合则继续遍历
treeGroup(datas, arr);
}
return dataArray;//返回遍历好的集合
};