JS的有关递归的知识点(数据无限级联的实现)

<!DOCTYPE html>

<html lang="en">



<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>



<body>



</body>

<script>

const intention_common = {

    "data": {

        "list": [{

            "id": 61,

            "name": "教育",

            "parent_id": 0,

            "parent_name": "",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 15,

            "name": "早教与学前教育",

            "parent_id": 61,

            "parent_name": "教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 3,

            "name": "中小学教育",

            "parent_id": 61,

            "parent_name": "教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 88,

            "name": "小学辅导",

            "parent_id": 3,

            "parent_name": "中小学教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 81,

            "name": "初中辅导",

            "parent_id": 3,

            "parent_name": "中小学教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 105,

            "name": "高中辅导",

            "parent_id": 3,

            "parent_name": "中小学教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 18,

            "name": "职业教育",

            "parent_id": 61,

            "parent_name": "教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 327,

            "name": "IT培训与考试",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 582,

            "name": "UI设计",

            "parent_id": 327,

            "parent_name": "IT培训与考试",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 442,

            "name": "编程语言",

            "parent_id": 327,

            "parent_name": "IT培训与考试",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 511,

            "name": "企业员工培训",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 594,

            "name": "MBA\/EMBA",

            "parent_id": 511,

            "parent_name": "企业员工培训",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 330,

            "name": "医学资格培训与考试",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 338,

            "name": "教师资格考试",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 595,

            "name": "财经考试",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 318,

            "name": "会计师资格考试",

            "parent_id": 595,

            "parent_name": "财经考试",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 376,

            "name": "司法考试",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 399,

            "name": "建造师资格考试",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 98,

            "name": "驾驶培训与考试",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 492,

            "name": "汽修培训与考试",

            "parent_id": 18,

            "parent_name": "职业教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 24,

            "name": "学历教育",

            "parent_id": 61,

            "parent_name": "教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 313,

            "name": "四六级英语考试",

            "parent_id": 24,

            "parent_name": "学历教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 469,

            "name": "考研英语考试",

            "parent_id": 24,

            "parent_name": "学历教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 520,

            "name": "考研辅导",

            "parent_id": 24,

            "parent_name": "学历教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 155,

            "name": "非学历教育",

            "parent_id": 61,

            "parent_name": "教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 460,

            "name": "在职教育",

            "parent_id": 155,

            "parent_name": "非学历教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 414,

            "name": "成人教育",

            "parent_id": 155,

            "parent_name": "非学历教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 75,

            "name": "语言培训",

            "parent_id": 61,

            "parent_name": "教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 319,

            "name": "少儿英语",

            "parent_id": 75,

            "parent_name": "语言培训",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 216,

            "name": "青少年英语",

            "parent_id": 75,

            "parent_name": "语言培训",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 248,

            "name": "成人英语",

            "parent_id": 75,

            "parent_name": "语言培训",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 303,

            "name": "其他小语种",

            "parent_id": 75,

            "parent_name": "语言培训",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 349,

            "name": "日语",

            "parent_id": 303,

            "parent_name": "其他小语种",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 375,

            "name": "韩语",

            "parent_id": 303,

            "parent_name": "其他小语种",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 96,

            "name": "出国留学\/移民",

            "parent_id": 61,

            "parent_name": "教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 312,

            "name": "雅思托福",

            "parent_id": 96,

            "parent_name": "出国留学\/移民",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 877,

            "name": "兴趣教育",

            "parent_id": 61,

            "parent_name": "教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 881,

            "name": "科技与编程",

            "parent_id": 877,

            "parent_name": "兴趣教育",

            "city_level": "CITY_LEVEL_NONE"

        }, {

            "id": 197,

            "name": "旅游",

            "parent_id": 0,

            "parent_name": "",

            "city_level": "CITY_LEVEL_NONE"

        }]

    },

    "code": 0,

    "message": "",

    "message_cn": ""

}

    function toTreeData(data, pid) {

        function tree(id) {

            let arr = []

            data.filter(item => {

                return item.parent_id === id;

            }).forEach(item => {

                let {...a} = item;

                a.children = tree(item.id);

                arr.push(a)

            })

            return arr.length > 0 ? arr : []

        }

        return tree(pid) // 第一级节点的父id,是null或者0,视情况传入

    }

    var tmp = toTreeData(intention_common.data.list, 0);

    console.log(tmp);

</script>



</html>

https://www.cnblogs.com/song-zmin/p/12808786.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值