如何優(yōu)化多層嵌套的循環(huán)和條件判斷代碼??
邏輯稍微復(fù)雜點(diǎn),就很容易出現(xiàn)for循環(huán)中嵌套if語句。比如:
menus:[{ id:"index", title:"首頁", isVisible:true },{ id:"apps", title:"應(yīng)用中心", isVisible:true, children:[{ id:"index", title:"首頁", isVisible:true } ] } ]
這段代碼先遍歷menus數(shù)組,然后判<愛尬聊_知識大全>斷是否顯示,在判斷是否有二級欄目,再遍歷二級欄目。。簡化版代碼:
for(var i=0;i<menus.length;i++){ if(menus[i].isVisible == true){ dosomething.... if(menus[i].children){ for(var j=0;j<menus[i].children.length;j++){ if(menus[i].children[j].isVisible == true){ dosomething..... } } } } }
有些代碼檢測工具是不贊同多層for/if 等嵌套的,最多三層,但這段代碼都有五層嵌套了。。 求教各位大神,這類代碼應(yīng)該怎么優(yōu)化? 感謝感謝!!
鹵肉面排骨 2小時(shí)前
看看是不是可以這樣?for(var i=0;i<menus.length;i++){
ly1987526 2小時(shí)前
請使用遞歸。
傾城淚橫行九州sadwqr一座 2小時(shí)前
這種含有子元素children
,并且子元素和父級元素的結(jié)構(gòu)是相似的,明顯應(yīng)該用遞歸
或者while
來進(jìn)行遍歷嘛。
tatontank 2小時(shí)前
}
小曉metres 1小時(shí)前
換種寫法可以降到3層: