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