JavaScript - 使用递归方法遍历树形数据

1,577 阅读1分钟

使用递归方法遍历树形数据

  首先,树形结构的数据,每个节点只有2个属性,1个是节点值,1个是子节点。如下面的arr

    let arr = [{
            name: "a",
            children: [{
                    name: "a-1"
                },
                {
                    name: "a-2",
                    children: [{
                        name: "a-2-1"
                    }, ]
                },
                {
                    name: "a-3"
                }
            ]
        },
        {
            name: "b",
            children: [{
                name: "b-1"
            }]
        },
        {
            name: "c"
        }
    ];

如果使用树形图,就类似下图:

<body>中存在一个默认的容器.container,我们将数据插入.container

    function alertArr(arr, con) {
        let ul = $("<ul/>"); // 创建树枝
        $.each(arr, function (index, value) {
            let li = $("<li/>").text(value.name); // 创建节点
            li.appendTo(ul); // 插入节点
            alertArr(value.children, li); // 向下层遍历,value.children为子节点,li为子节点的容器
        });
        ul.appendTo(con); // 将树枝插入到容器
    }

    alertArr(arr, $(".container"));