第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

遞歸函數(shù)如何返回正確值?

遞歸函數(shù)如何返回正確值?

肥皂起泡泡 2019-05-21 10:36:19
有如下遞歸函數(shù),無法返回正確的結(jié)果:constnavItems=[{name:'name1',label:'人事管理',items:[{name:'name2',label:'員工管理',items:[{name:'name3',label:'員工管理-0',items:[{name:'name4',label:'員工管理-0-0',items:'',},{name:'name5',label:'員工管理-0-1',items:'',},],},{name:'name6',label:'員工管理-1',items:'',},],},{name:'name7',label:'部門管理',items:[{name:'name8',label:'部門管理1',items:'',},{name:'name9',label:'部門管理2',items:'',},],},{name:'name10',label:'職位管理',items:[{name:'name11',label:'職位管理1',items:'',},{name:'name12',label:'職位管理2',items:'',},],},],},];constnavName='name12';constgetSelectedLabel=(navItems,navName)=>{letselectedLabel;constfindSelectedLabel=(items,name)=>{items.forEach((item)=>{if(item.name===name){selectedLabel=item.label;}elseif(item.items&&Array.isArray(item.items)){findSelectedLabel(item.items,name);}});};findSelectedKey(navItems,navName);returnselectedLabel;};想要通過遞歸函數(shù),根據(jù)name值找到對應(yīng)的label值,但是函數(shù)先返回了undefined,再執(zhí)行到了賦值,應(yīng)該怎么修改才對?還有我本來寫的是不要嵌套外層函數(shù):constfindSelectedLabel=(items,name)=>{items.forEach((item)=>{if(item.name===name){returnitem.label;}elseif(item.items&&Array.isArray(item.items)){findSelectedLabel(item.items,name);}});};findSelectedLabel(navItems,navName)直接找到后返回這個值,但是也是不對的...雖然函數(shù)走到了return這句話,但并沒有終止整個函數(shù),最后返回的還是undefined.很多人說運行結(jié)果是對的,那是因為剛好name4在第一層里,如果使用navName=name12,就不對了...還有使用for循環(huán)也不對...使用for循環(huán)以后,它只遞歸第一層,只會一層層往里遞歸,而不會進入for循環(huán)...謝謝各位大神~
查看完整描述

2 回答

?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

你的遞歸終止條件在哪里呢?
--------------------更新------------------------請您先仔細(xì)了解一下forEach函數(shù)的用法,return不會終止這個函數(shù)的,223.
                            
查看完整回答
反對 回復(fù) 2019-05-21
  • 2 回答
  • 0 關(guān)注
  • 297 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號