递归(树状图)

244 阅读1分钟

进行一个树状图的递归

目的如图所示

首先创建一个数组

    let arr = [{
            name: 'a',
            children: [{
                name: 'a-1',
                children: [{
                    name: 'a-1-1',
                    children: [{
                        name: 'a-1-1-1'
                    }]
                }]
            }]
        },
        {
            name: 'b',
            children: [{
                name: 'b-1',
                children: [{
                    name: 'b-1-1'
                }]
            }]
        },
        {
            name: 'c',
            children: [{
                name: 'c-1'
            }]
        },
        {
            name: 'd'
        }
    ]

创建完数组后,进行第一步把第一层整理出来

 function createMenu(data, con) {
        let ul = $('<ul/>')
        data.forEach(item => {
            let li = $('<li/>').text(item.name)
            if (item.children)
                createMenu(item.children, li)
            ul.append(li)
        });
        con.append(ul)
    }

    createMenu(arr, $('.container'))