什么是递归
何为递归?程序反复调用自身即是递归。递归是一个反复调用自身的过程,这就说明它每一级的功能都是一样的,因此我们只需要关注一级递归的解决过程即可。
递归三要素
- 明确递归终止条件。
- 给出递归终止时的处理办法。
- 提取重复的逻辑,缩小问题规模。
简单使用
一: 后台返回数据嵌套数据类型转换为数组
// 递归拿到部门数组
function:recursion(data){
for (const i in data) {
this.deptArr.push(data[i])
if (data[i].children.length>0) {
this.recursion(data[i].children)
}
}
},
二: 后台返回同级加嵌套数据类型转换为树形嵌套数据
function:recursion(data) {
for (const i in data) {
data[i].dept.children = [...data[i].nextLayerDepts, ...data[i].users]; //同一级塞下一级
data[i].dept.children.forEach((element,index) => {
if(element.dept){
data[i].dept.children[index] = element.dept;
console.log(element.dept)
}
});
if (data[i].nextLayerDepts.length > 0) {
this.recursion(data[i].nextLayerDepts);
}
data[i] = data[i].dept;
}
this.treeData=data;
},
这是我个人根据需求对递归的简单使用,做了一个简单的总结,只要理解递归的使用含义,碰到问题自然就能解决,欢迎点赞关注!!