zoukankan      html  css  js  c++  java
  • 一个嵌套层级递归的用法案例

    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

    小结:

    类似于这种层级嵌套的数据结构,如果想找到某一个值,则需要用到递归的思想;

    同时,需要注意的是子级的数据需要返回,见红色部分。

  • 相关阅读:
    数组与指针
    壁纸
    2019/1/11
    指针A
    数组B
    一起来抓老鼠啊!快乐呀!
    打印沙漏
    I think I need a boat house
    币值转换
    《C语言程序设计》编程总结汇总
  • 原文地址:https://www.cnblogs.com/teamemory/p/12120283.html
Copyright © 2011-2022 走看看