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>

相关文章

背景:计算机内部用补码表示二进制数。符号位1表示负数,0表...
大家好,我们现在来讲解关于加密方面的知识,说到加密我认为不...
相信大家在大学的《算法与数据结构》里面都学过快速排序(Qui...
加密在编程中的应用的是非常广泛的,尤其是在各种网络协议之...
前言我的目标是写一个非常详细的关于diff的干货,所以本文有...
对称加密算法 所有的对称加密都有一个共同的特点:加密和...