亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何優化多層嵌套的循環和條件判斷代碼?

如何優化多層嵌套的循環和條件判斷代碼?

滄海一幻覺 2018-09-05 14:13:07
邏輯稍微復雜點,就很容易出現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 等嵌套的,最多三層,但這段代碼都有五層嵌套了。。 求教各位大神,這類代碼應該怎么優化? 感謝感謝!!
查看完整描述

1 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

請使用遞歸。

var menus=[{

        id: "index",

        title: "首頁",

        isVisible: true

    },

    {

        id: "apps",

        title: "應用中心",

        isVisible: true,

        children: [{

                id: "11",

                title: "aaa",

                isVisible: true,

                children:[{

                    id: "12",

                    title: "bbb",

                    isVisible: true,

                    children:[{

                        id: "13",

                        title: "ccc",

                        isVisible: true

                    }]

                }]

            }

        ]

    }

];



function func(array) {


    for(var i=0;i<array.length;i++)

    {

        if(array[i].isVisible){

            console.log(array[i].id)

        }

        if(array[i].children)

        {

            func(array[i].children);

        }

    }


}

console.time('time');

func(menus);

console.timeEnd('time');


查看完整回答
反對 回復 2018-10-18
  • 1 回答
  • 0 關注
  • 1310 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號