• js 递归查找


    https://www.v2ex.com/t/661182

    let arr = [
        {
            "children": [
                {
                    "pid": 1,
                    "id": 2,
                    "label": "技术",
                    "value": 2
                },
                {
                    "pid": 1,
                    "id": 3,
                    "label": "产品",
                    "value": 3
                },
                {
                    "children": [
                        {
                            "pid": 4,
                            "id": 26,
                            "label": "测试栏目 1",
                            "value": 26
                        }
                    ],
                    "pid": 1,
                    "id": 4,
                    "label": "项目",
                    "value": 4
                },
                {
                    "pid": 1,
                    "id": 5,
                    "label": "国际",
                    "value": 5
                },
                {
                    "pid": 1,
                    "id": 24,
                    "label": "研究",
                    "value": 24
                },
                {
                    "children": [
                        {
                            "pid": 7,
                            "id": 18,
                            "label": "行业",
                            "value": 18
                        },
                        {
                            "pid": 7,
                            "id": 19,
                            "label": "活动",
                            "value": 19
                        },
                        {
                            "pid": 7,
                            "id": 20,
                            "label": "新闻",
                            "value": 20
                        },
                        {
                            "pid": 7,
                            "id": 21,
                            "label": "资讯",
                            "value": 21
                        },
                        {
                            "pid": 7,
                            "id": 22,
                            "label": "新闻",
                            "value": 22
                        },
                        {
                            "pid": 7,
                            "id": 23,
                            "label": "知识",
                            "value": 23
                        },
                        {
                            "children": [
                                {
                                    "children": [
                                        {
                                            "pid": 11,
                                            "id": 12,
                                            "label": "栏目 4",
                                            "value": 12
                                        }
                                    ],
                                    "pid": 9,
                                    "id": 11,
                                    "label": "栏目 3",
                                    "value": 11
                                }
                            ],
                            "pid": 7,
                            "id": 9,
                            "label": "帮助中心",
                            "value": 9
                        }
                    ],
                    "pid": 1,
                    "id": 7,
                    "label": "新闻资讯",
                    "value": 7
                },
                {
                    "children": [
                        {
                            "pid": 8,
                            "id": 13,
                            "label": "简介",
                            "value": 13
                        },
                        {
                            "pid": 8,
                            "id": 14,
                            "label": "荣誉",
                            "value": 14
                        },
                        {
                            "pid": 8,
                            "id": 15,
                            "label": "关怀",
                            "value": 15
                        },
                        {
                            "pid": 8,
                            "id": 16,
                            "label": "我们",
                            "value": 16
                        }
                    ],
                    "pid": 1,
                    "id": 8,
                    "label": "我们",
                    "value": 8
                },
                {
                    "pid": 1,
                    "id": 17,
                    "label": "公告",
                    "value": 17
                },
                {
                    "pid": 1,
                    "id": 6,
                    "label": "展示",
                    "value": 6
                }
            ],
            "pid": 0,
            "id": 1,
            "label": "主目录",
            "value": 1
        }
    ]
    
    function find(arr, id) {
        if (arr == null) return null;
        for (let obj of arr) {
            if (obj.id == id) {
                return collect(obj);
            }
            let ret = find(obj.children, id);
            if (ret) return ret;
        }
        return null;
    }
    
    function collect(obj) {
        let ret = [obj.id];
        if (obj.children) {
            for (let o of obj.children) {
                ret = [...ret, ...collect(o)]
            }
        }
        return ret;
    }
    
  • 相关阅读:
    STL
    Python
    Swift学习笔记
    Swift学习笔记
    Cocos2d-x -- 如何让背景从上到下滚动
    Cocos2d-x -- 图片菜单按钮
    How to change in the Cocos2d-x project from landscape to portrait both in iOS and Android
    系统集成项目管理工程师和信息系统管理工程师的区别是什么?
    公积金取出来后悔了 公积金取出来好还是不取好?
    青岛公积金贷款额度最高多少?怎么算?
  • 原文地址:https://www.cnblogs.com/fazero/p/12674084.html
Copyright © 2020-2023  润新知