js递归函数使用js callee 递归有什么作用
js递归函数 时间:2021-06-20 阅读:(
)
求高手 用js实现 用递归的方法得到如下的树形
<body>
<div id="a"></div>
<script type="text/javascript">
var arr = new Array();
var arr1 = {uId:"1",uName:"name1",uPass:"pass1",parentId:"0"};
arr.push(arr1);
var arr2 = {uId:"2",uName:"name2",uPass:"pass2",parentId:"1"};
arr.push(arr2);
var arr3 = {uId:"3",uName:"name3",uPass:"pass3",parentId:"1"};
arr.push(arr3);
var arr4 = {uId:"4",uName:"name4",uPass:"pass4",parentId:"2"};
arr.push(arr4);
var arr5 = {uId:"5",uName:"name5",uPass:"pass5",parentId:"3"};
arr.push(arr5);
var arr6 = {uId:"6",uName:"name6",uPass:"pass6",parentId:"3"};
arr.push(arr6);
var arr7 = {uId:"7",uName:"name7",uPass:"pass7",parentId:"2"};
arr.push(arr7);
var str = "";
for(var i=0;i<arr.length;i++){
if(arr[i].parentId=="0"){
str = str+arr[i].uName+"<br/>";
for(var j=0;j<arr.length;j++){
if(arr[j].parentId==arr[i].uId){
str = str+"??|--"+arr[j].uName+"<br/>";
for(var k=0;k<arr.length;k++){
if(arr[k].parentId==arr[j].uId){
str = str+"??????|--"+arr[k].uName+"<br/>";
}
}
}
}
}
}
document.getElementById("a").innerHTML = str;
</script>
</body>js中的递归调用
其实你对递归的方法理解的有误了,以为执行了foo(i-1)就跳出了递归,其实只是跳出了递推,整个foo()并没有跳出,因为没有return;
递归故名思议就是递推和回归,递推是从外向内执行,bengin从3开始输出;当i=0时就不再递推,开始执行回归,回归是从内层往外层执行,end从0输出在JavaScript使用递归函数判断质数
/**
* 判断n是否是质数
* @param n 要判断的自然数
* @param a 递归参数,初始传递为2,即最小质数
*/
function isPrime(n, a){
if(n < 2)
return false;
if(n == a)
return true;
if(n % a == 0)
return false;
return isPrime(n, a + 1);
}
// 调用示例:
alert(isPrime(5, 2));使用js callee 递归有什么作用
js递归调用
1function fact(num) {2if(num <=1) {3return1;4}else{5returnnum * fact(num -1);6}7}
以下代码可导致出错:
1varanotherFact =fact;2fact =null;3alert(antherFact(4));//出错 由于fact已经不是函数了,所以出错。
用arguments.callee可解决问题,这是一个指向正在执行的函数的指针,arguments.callee返回正在被执行的对现象。
新的函数为:
1functionfact(num) {2if(num <= 1) {3return1;4}else{5returnnum * arguments.callee(num - 1);//此处更改了。
6}7}8varanotherFact =fact;9fact =null;10alert(antherFact(4));//结果为24.
3C云国内IDC/ISP资质齐全商家,与香港公司联合运营, 已超6年运营 。本次为大家带来的是双12特惠活动,香港美国日本韩国|高速精品|高防|站群|大带宽等产品齐全,欢迎咨询问价。3C云科技有限公司官方网站:http://www.3cccy.com/客服QQ:937695003网页客服:点击咨询客户QQ交流群:1042709810价目表总览升级内存 60元 8G内存升级硬盘 1T机械 90元 2...
pacificrack发布了7月最新vps优惠,新款促销便宜vps采用的是魔方管理,也就是PR-M系列。提一下有意思的是这次支持Windows server 2003、2008R2、2012R2、2016、2019、Windows 7、Windows 10,当然啦,常规Linux系统是必不可少的!1Gbps带宽、KVM虚拟、纯SSD raid10、自家QN机房洛杉矶数据中心...支持PayPal、...
v5net当前对香港和美国机房的走优质BGP+CN2网络的云服务器进行7折终身优惠促销,每个客户进线使用优惠码一次,额外有不限使用次数的终身9折优惠一枚!V5.NET Server提供的都是高端网络线路的机器,特别优化接驳全世界骨干网络,适合远程办公、跨境贸易、网站建设等用途。 官方网站:https://v5.net/cloud.html 7折优惠码:new,仅限新客户,每人仅限使用一次 9...
js递归函数为你推荐
贸易配额纺织品进出口配额是什么财务系统软件财务管理软件是什么软件动态图片格式常见的动态图像文件格式有哪些?公众号付费阅读如何申请微信付费阅读功能刷ip流量免费刷流量软件有哪些?哪个免费刷流量工具最好?comexception5种常见的Exception!java程序员招聘java程序员学出来工作好不好找,工资咋样?selectintooracle有select into临时表的用法吗云办公平台什么叫云办公啊?谁能通俗的给我讲下腾讯合作伙伴大会腾讯位置服务是什么?
个人域名备案流程 42u机柜尺寸 抢票工具 网站实时监控 合租空间 徐正曦 免费测手机号 web服务器安全 江苏双线服务器 腾讯总部在哪 新加坡空间 中国电信测速网站 登陆qq空间 云服务是什么意思 ssl加速 服务器托管价格 数据湾 重庆联通服务器托管 腾讯云平台 优惠服务器 更多