为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确的使用递归?

如何正确的使用递归?

九州编程 2019-04-27 17:18:56
需求是找到对应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
}
                            
查看完整回答
反对 回复 2019-04-27
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

letchildCode=digui(item.children,code);
if(childCode){
returnchildCode
}
需要对递归函数返回值做一下处理
                            
查看完整回答
反对 回复 2019-04-27
  • 2 回答
  • 0 关注
  • 375 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信