逻辑稍微复杂点,就很容易出现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 等嵌套的,最多三层,但这段代码都有五层嵌套了。。 求教各位大神,这类代码应该怎么优化? 感谢感谢!!
请使用递归。