使用递归方法遍历树形数据
首先,树形结构的数据,每个节点只有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"));