1.双层filter过滤第一层 item 定义为father newArr接收
第一层过滤出最顶层数组
判断 branchArr的长度 存在father.children=branchArr
否则为空
return father.pid === 0第二层 item 定义为child branchArr接收
里层 判断pid是否存在(没有子集的pid为0)
存在返回 father ID与child pID相同的元素拿每一个元素和所有元素进项比较判断 如果ID与pid相同返回拿到的是该元素的子集集合
let idList=[{id:1001,level:0,name:"企业信息",titleNum:"",isLeaf:false,caseId:"",pid:0}, {id:1002,level: 1,name: "基本信息",titleNum:"",isLeaf: true,caseId:"A1001",pid: 1001}, {id: 1003,level: 1,name: '高管信息',titleNum:"",isLeaf: true,caseId:"A1002",pid: 1001}
]let newArr=[]
newArr = this.state.list.filter((father,index) => {/*branchArr 子集*/let branchArr = this.state.list.filter((child,key) => {if (idList.includes(child.pid)) {return father.id === child.pid} else {child.pid = 0;/*child.titleNum=index+"."+newArr;*/return father.id === child.pid}});branchArr.length > 0 ? father.children = branchArr : '';/*newArr 父集层*/return father.pid === 0;
});