树形数据,每一级都有唯一的标识ID
const tree = [
{
title:'动漫',
children:[
{
title:'那啥空',
children:[
{title:'春日野穹'},
{title:'春日野空'},
],
},
{
title:'猫和老鼠',
children:[
{title:'Tom'},
{title:'Jerry'},
]
}
]
}
]
简单递归处理
function mapTree(treeData){
treeData.forEach(treeNode=>{
console.log(treeNode)
if(treeNode?.children?.length){
mapTree(treeNode.children)
}
})
}
mapTree(tree)
提取处理方法和节点key,封装函数
function mapTree(treeData,callback,childKey='children'){
treeData.forEach(treeNode=>{
callback(treeNode);
if(treeNode?.[childKey]?.length){
mapTree(treeNode[childKey],callback,childKey)
}
})
}
mapTree(tree,treeNode=>{
console.log(treeNode)
})