js递归根据父级id获取所有的子节点

简介: js递归根据父级id获取所有的子节点
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
id: 子节点的pid,
pid: 0代表顶级数据 父id相当于子数据的pid
label: 信息
children: 数组 子节点数据
*/
        data = [{
            id: 1,
            label: '一中队',
            children: [{
                id: 4,
                label: '一支队',
                children: [
                    {
                    id: 9,
                    label: '张三'
                }, {
                    id: 10,
                    label: '李四',
                    children:[
                        {
                              id: 110,
                              label: '李110四',
                        }
                    ]
                }
                ]
            }]
        }, {
            id: 6,
            label: '四中队',
        }]
        var returnedItem = []; //定义一个空数组
        function find(arr, id) {
            //利用foreach循环遍历
            arr.forEach((item) => {
                //判断递归结束条件
                if (item.id == id) {
                    // 存储数据到空数组
                    returnedItem=item.children;
                } else if (item.children != null) //判断chlidren是否有数据
                {
                    //递归调用
                    find(item.children, id);
                }
            })
            return returnedItem;
        }
        var item = new find(data, 10);
        console.log(item)
    </script>
</body>
</html>
相关文章
|
3月前
|
JavaScript 前端开发 API
淘宝店铺阿里旺旺采集工具,连接批量转旺旺ID,用Js接口实现效果
以下是淘宝店铺阿里旺旺采集工具的JS实现代码,包含批量获取店铺旺旺ID功能,当然仅
|
4月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
165 19
|
6月前
|
JavaScript 前端开发 测试技术
|
前端开发 JavaScript
JavaScript递归菜单栏
JavaScript递归菜单栏
JavaScript递归菜单栏
|
JSON JavaScript 前端开发
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
|
缓存 JavaScript 前端开发
|
数据采集 缓存 JavaScript
JavaScript递归函数的设计与优化
JavaScript递归函数的设计与优化
|
网络架构
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
|
JavaScript 前端开发 测试技术
了解JS递归
了解JS递归
93 1
|
JavaScript Serverless
JS实现递归功能
JS实现递归功能

热门文章

最新文章