概述
递归遍历树
getTreeList (list) {
const vm = this
for (let item of list) {
item.label = item.menucname
item.id = item.taskcode
if(vm.flag === '0'){ //查看过来树禁用
item.disabled = true
}
vm.expandList.push(item.taskcode) // 树默认展开一级菜单的集合
item.children = item.childMenuList
if (item.children && item.children.length > 0) {
vm.getTreeList(item.children);
}
}
vm.list1length += list.length
//总长度
console.log(vm.list1length, '总长度');
vm.treeList = data.data
// 判断全选按钮是否勾选
if(vm.checkedList.length === (vm.list1length+vm.list2length+vm.list3length+vm.list4length)){
vm.checkAll=true
}
}
一般递归实现阶乘
function fact(n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * fact(n - 1);
}
}
一般递归需要中栈上维护函数的调用信息直到函数返回后才释放,容易发生『栈溢出』错误。但对于尾递归来说,
只需要维护一个调用记录。
尾递归实现阶乘:
什么是尾递归?
在计算机科学里,尾调用是指一个函数里的最后一个动作是一个函数调用的情形:即这个调用的返回值直接被当前函数返回的情形。这种情形下称该调用位置为尾位置。若这个函数在尾位置调用本身(或是一个尾调用本身的其他函数等等),则称这种情况为尾递归,是递归的一种特殊情形。—— 维基百科
function fact-iter(n, a) {
if (n == 0) {
return 1;
} else if (n == 1) {
return a;
} else {
return fact-iter(n - 1, n * a);
}
}
function fact(n) {
return fact-iter(n, 1);
}
最后
以上就是过时冰棍为你收集整理的递归遍历示例的全部内容,希望文章能够帮你解决递归遍历示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复