一個嵌套層級遞歸的用法案例


let menus = [{
    code: 1,
    name: '山西省',
    children: [
        {
            code: 2,
            name: '朔州市',
            children: [
                {
                    code: 5,
                    name: '朔城區'
                },
                {
                    code: 8,
                    name: '山陰'
                }
            ]
        },
        {
            code: 3,
            name: '大同市',
            children: [
                {
                    code: 6,
                    name: '雲岡'
                }
            ]
        },
        {
            code: 4,
            name: '太原市',
            children: [
                {
                    code: 7,
                    name: '小店區'
                },
                {
                    code: 10,
                    name: '迎澤區'
                }
            ]
        }
    ]
}]

function searchCode(list, name) {
    for (let item of list.values()) {
        if (item.name == name) {
            return item.code
        } else if (item.children) {
            let result = searchCode(item.children, name)
            if (result) return result
        }
    }
}

let res = searchCode(menus, '雲岡')
console.log(res) // 6

小結:

類似於這種層級嵌套的數據結構,如果想找到某一個值,則需要用到遞歸的思想;

同時,需要注意的是子級的數據需要返回,見紅色部分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM