递归循环树形数组添加元素
数据结构
let arr = [
{
"id": "1367284300238704640",
"name": "饭堂",
"category": 1,
"children": [
{
"id": "1367285230778601472",
"name": "学生饭堂",
"category": 1,
"children": [
{
"id": "1367287171499839488",
"name": "一楼饭堂",
"category": 1,
"children": [
{
"id": "1367287929783865344",
"name": "实中饭堂101",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1367287243599925248",
"name": "二楼饭堂",
"category": 1,
"children": [
{
"id": "1367295735509438464",
"name": "实中饭堂201",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1367285316497592320",
"name": "教职工饭堂",
"category": 1,
"children": [
{
"id": "1367296370241851392",
"name": "教职工饭堂301",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1367284492132306944",
"name": "商店汇总",
"category": 1,
"children": [
{
"id": "1367285976387440640",
"name": "商店",
"category": 1,
"children": [
{
"id": "1367287304866123776",
"name": "商店1",
"category": 1,
"children": [
{
"id": "1367297031620677632",
"name": "401",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1367287346721083392",
"name": "新商店",
"category": 1,
"children": [
{
"id": "1367297144363569152",
"name": "501",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1367710667522592768",
"name": "商店2",
"category": 1,
"children": [
{
"id": "1367711004568473600",
"name": "801",
"category": 1,
"children": [],
"lastChildrenIds": null
},
{
"id": "1367711038236151808",
"name": "802",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1367297446860967936",
"name": "水果店",
"category": 1,
"children": [
{
"id": "1367297543711641600",
"name": "601",
"category": 1,
"children": [],
"lastChildrenIds": null
},
{
"id": "1367297600817090560",
"name": "602",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1367285154148667392",
"name": "卫生室",
"category": 1,
"children": [
{
"id": "1367297642026127360",
"name": "701",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1371652285871218688",
"name": "水房",
"category": 1,
"children": [
{
"id": "1371652333749198848",
"name": "901",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
},
{
"id": "1370193940720033792",
"name": "自助机汇总",
"category": 1,
"children": [
{
"id": "1370194264222507008",
"name": "自助牛奶机",
"category": 1,
"children": [],
"lastChildrenIds": null
}
],
"lastChildrenIds": null
}
]
不管有多少个children 都要在对象里插入元素
反正就是自己调用自己 这就是递归了
getOranization() {
uni.request({
url: xxx,
method: 'get',
data: {},
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success(res) {
if (res.data.code == 200) {
if (res.data.obj.length > 0) {
let arr = []
arr = res.data.obj
setTimeout(() => {
this.department = this.iteration(arr)
}, 500);
console.log("this.department: ", this.department);
} else {
uni.showToast({
title: '暂无组织架构',
icon: 'none'
})
}
} else {
}
},
fail(err) {
console.log(err);
}
})
},
iteration(arr) {
let newArr = [];
if (arr != undefined && arr.length > 0) {
newArr = arr.map(item => {
item.openTag = false
item.choose = false
if (item.children != undefined && item.children.length > 0) {
this.iteration(item.children);
}
return item;
});
}
return newArr;
},