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.
近日CloudCone发布了七月的特价便宜优惠VPS云服务器产品,KVM虚拟架构,性价比最高的为2核心1.5G内存1Gbps带宽5TB月流量,2.89美元/月,稳定性还是非常不错的,有需要国外便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开...
Virmach自上次推出了短租30天的VPS后,也就是月抛型vps,到期不能续费,直接终止服务。此次又推出为期6个月的月抛VPS,可选圣何塞和水牛城机房,适合短期有需求的用户,有兴趣的可以关注一下。VirMach是一家创办于2014年的美国商家,支持支付宝、PayPal等方式,是一家主营廉价便宜VPS服务器的品牌,隶属于Virtual Machine Solutions LLC旗下!在廉价便宜美国...
tmthosting怎么样?tmthosting家本站也分享过多次,之前也是不温不火的商家,加上商家的价格略贵,之到斯巴达商家出现,这个商家才被中国用户熟知,原因就是斯巴达家的机器是三网回程AS4837线路,而且也没有多余的加价,斯巴达家断货后,有朋友发现TMTHosting竟然也在同一机房,所以大家就都入手了TMTHosting家的机器。目前,TMTHosting商家放出了夏季优惠,针对VPS推...
js递归函数为你推荐
动态图片格式常见的动态图像文件格式有哪些?云输入法QQ云输入法怎样进行中英文切换?东兴证券网站东兴证券交易软件如何操作?怎么保存整个网页怎样完整的保存一个网页元宝汇热血传奇怎么冲元宝的商品编码查询系统如何用商品名称查询编码?biodigitalBIODELUXE产品正规吗?有用吗6位qq号码申请6位QQ号 怎么申请wap服务wap业务是什么意思?listview的优化安卓listview中的setOnItemSelectedListener用法,能不能举例说明?
服务器租用托管 广州主机租用 免费申请网页 site5 国内永久免费云服务器 xen 免费网页申请 英国伦敦 德讯 服务器论坛 lamp是什么意思 国外代理服务器 双11促销 侦探online 在线tracert 遨游论坛 crontab 主机响 lighttpdwindows 免费网络电视软件 更多