示例:constlist=[{id:0,name:"yx"},{id:2,name:"yj",superId:0},{id:4,name:"yd",superId:0},{id:7,name:"yf",superId:2}]//转换为consttree={id:0,name:"yx",children:[{id:2,name:"yj",children:[{id:7,name:"yf"}]},{id:4,name:"yd"}]}这种情况在前端渲染树组件时经常会遇到。我比较笨,想法是递归遍历。比如这里没有superId,就是在rootroot中创建为“children”的key,value就是遍历数组找到superId等于root的id的对象,然后递归每当列表中的项目添加到相应的树时,根的子对象中的对象。在关卡中时,从列表中删除项目。当链表长度为0时,为递归出口。这里使用lodash提供的工具函数,当然也可以使用splice(遍历时注意下标)。//****对象数组==>树__arrToTree(arr,pid="superiorId",id="id"){lettree=[];_.remove(arr,item=>{if(item[pid]==="0"){tree.push(item)returntrue}returnfalse})//递归constgetChildren=(arr,tree,pid,id)=>{if(!arr||!tree)返回;树.forEach(i=>{_.remove(arr,j=>{if(j[pid]===i[id]){i.children.push(j)返回true}返回false})if(i.children.length===0){deletei.children;}else{getChildren(arr,i.children,pid,id)}})}getChildren(arr,tree,pid,id)返回树}//******
