需求是找到对应code第一次出现的位置,一下函数始终不能正确执行,大家帮忙改正下letmenus=[{code:2,name:'222',children:[{code:33,name:'222sa',children:[{code:44,name:'22'}]}]},{code:922,name:'922',children:[{code:9222,name:'92222222dsadsa',children:[{code:44222,name:'442222dsads'}]}]}]functiondigui(arr,code){for(vari=0;i
2 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
functiondigui(arr,code){for(vari=0;iif(arr[i].code==code){ returnarr[i]}else{if(arr[i].children){digui(arr[i].children,code)}}}}你这个函数仔细看一下有一些情况下是没有返回值的(即if(arr[i].children)的分支)。你应该取到子级递归的结果,如果找到了,就返回:if(arr[i].children){letresult=digui(arr[i].children,code)if(result)returnresult}
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
letchildCode=digui(item.children,code);if(childCode){returnchildCode}需要对递归函数返回值做一下处理
添加回答
举报
0/150
提交
取消