递归

112 阅读1分钟

1.递归,其实简单说起来就是套娃,对象里面有东西,则把他传递出来,例如

  var kk = [
        {
            name: 123,
            children: [
                {
                    name: 123,
                    children: [
                        {
                            name: 123,
                        },
                        {
                            name: 123,
                            children: [
                                {
                                    name: 123,
                                },
                                {
                                    name: 123,
                                },
                                {
                                    name: 123,
                                }
                            ],
                        },
                        {
                            name: 123,
                        }
                    ],
                },
                {
                    name: 123,
                },
                {
                    name: 123,
                }
            ],
        },
        {
            name: 123,
            children: [
                {
                    name: 123,
                },
                {
                    name: 123,
                },
                {
                    name: 123,
                }
            ],
        },
        {
            name: 123,
        }
    ];

2.我想把它在html里面打印出来,先引入一下jqQ,操作方便

    function creaMenu(data, con) {
        //首先创建一个大的ul
        let myul = $('<ul></ul>')
        //遍历传进来的对象
        data.forEach(function (item, i) {
            //创建li,设置里内容放入对象的值
            let myli = $('<li></li>').text(item.name)
            //判断对象是否有子元素
            if (item.children) {
                //如果有子元素,则返回true,回调这个函数
                creaMenu(item.children, myli)
            }
            //把含有元素的内容放入大ul中
            myul.append(myli)
        })
        //把ul放入要放的地方
        con.append(myul)
    }
    //调用函数,里面的值为要显示的对象和放入的位置
    creaMenu(kk, $('.box'))

则递归函数完成