先看结果[{"id":1,"title":"张三","parent_id":-1,"childs":[{"id":2,"title":"张小二","parent_id":1,"childs":[{"id":3,"title":"张小三","parent_id":2,"childs":[]}]}]}]看代码方法/***生成树*@paramparent_idparentid*/constinitTree=(parent_id)=>{//jsonArray变量数据//第一次后:根据id查询相同的parent_id(相同的是child数据)//第一次:查找所有parent_id为-1的数据组成第一层constchild=jsonArray.filter(item=>item.parent_id==parent_id)//第一次:循环parent_id为-1的数组返回child.map(item=>({...item,//当前存在id(id和parent_id应该这是必须的)调用initTree()查找所有parent_id为id的数据//将childs字段写入children:initTree(item.id)}))}//先调用initTree方法查找所有parent_id为-1(-1视为第一级)consttree=initTree(-1)console.log(tree)jsonArraysourcedata[{"id":1,//id,关联parent_id"title":"张三","parent_id":-1,//父id-1为一级,关联id查询父子关系},{"id":2,"title":"张小二","parent_id":1,},{"id":3,"title":"张小三","parent_id":2,}]
