let tree=[
{
name:'1',
id:1,
children:[
{
name:'1-1',
id:11,
children:[
{
name: '1-1-1',
id:111,
},
{
name: '1-1-2',
id:112,
}
]
},
{
name:'1-2',
id:12,
children:[
{
name: '1-2-1',
id:121,
},
{
name: '1-2-2',
id:122,
}
]
}
]
},{
name:'2',
id:2,
children: [
{
name:'2-1',
id:21,
children: [
{
name:'2-1-1',
id:211,
}
]
},
{
name:'2-2',
id:22
}
]
}
];
// let result={};
const recurrenceFunc = (arr,parentId=null) => {
let len=arr.length
let result={}
for(let i=0;i<len;i++){
let cur=arr[i]
if(cur.children){
let idArr = []
let childLen = cur.children.length
for(let j=0;j<childLen;j++){
idArr.push(cur.children[j].id)
}
result[cur.id]={
name:cur.name,
children_id:idArr,
parent_id:parentId
}
Object.assign(result, recurrenceFunc(cur.children,cur.id))
}else{
result[cur.id]={
name:cur.name,
parent_id:parentId?parentId:null
}
}
}
return result
};
console.log(recurrenceFunc(tree,null))
结果如下: