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

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

如何優(yōu)化多層嵌套的循環(huán)和條件判斷代碼?

如何優(yōu)化多層嵌套的循環(huán)和條件判斷代碼?

滄海一幻覺 2018-09-05 14:13:07
邏輯稍微復(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)化? 感謝感謝??!
查看完整描述

1 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊

請使用遞歸。

var menus=[{

        id: "index",

        title: "首頁",

        isVisible: true

    },

    {

        id: "apps",

        title: "應(yīng)用中心",

        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');


查看完整回答
反對 回復(fù) 2018-10-18
  • 1 回答
  • 0 關(guān)注
  • 1308 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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