var array = [{id: '0',parentId:null},{id: '1',parentId:'0'},{id: '2',parentId:'0'},{id: '3',parentId:'1'},{id: '4',parentId:'3'},{id: '5',parentId:'4'}]; //排序 array.sort(function(a,b){ return a.id - b.id; }); //数据递归 function createTree(arr,rootid){ var carr=findChild(arr,rootid); if(!carr.length){ return null; } for(var i=0;i<carr.length;i++){ var cTree=createTree(arr,carr[i].id); if(cTree!==null){ carr[i]['children']=cTree; } } return carr; } //获取子元素 function findChild(arr,id){ var cArr=[]; for(var i=0; i<arr.length;i++){ if(arr[i].parentId===id){ cArr.push(arr[i]) } } return cArr; } console.log(createTree(array,null));