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.
iWebFusion(iWFHosting)在部落分享过很多次了,这是成立于2001年的老牌国外主机商H4Y旗下站点,提供的产品包括虚拟主机、VPS和独立服务器租用等等,其中VPS主机基于KVM架构,数据中心可选美国洛杉矶、北卡、本德、蒙蒂塞洛等。商家独立服务器可选5个不同机房,最低每月57美元起,而大流量10Gbps带宽服务器也仅149美元起。首先我们分享几款常规服务器配置信息,以下机器可选择5...
近日CloudCone发布了最新的补货消息,针对此前新年闪购年付便宜VPS云服务器计划方案进行了少量补货,KVM虚拟架构,美国洛杉矶CN2 GT线路,1Gbps带宽,最低3TB流量,仅需14美元/年,有需要国外便宜美国洛杉矶VPS云服务器的朋友可以尝试一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器...
活动方案:美国洛杉矶 E5 2696V2 2核4G20M带宽100G流量20元/月美国洛杉矶E5 2696V2 2核4G100M带宽1000G流量99元/季香港CN2 E5 2660V2 2核2G30M CN2500G流量119元/季日本CN2E5 2660 2核2G30M CN2 500G流量119元/季美国300G高防 真实防御E5 2696V2 2核2G30M...
js递归函数为你推荐
dnf装备代码DNF红眼装备代码youtube创始人我的世界captainsparklez是谁淘码除了爱码,现在哪个验证码平台还能用泛微协同办公系统泛微oa怎么样?我想了解一下,有用过的同仁帮忙!发表下自己的观点(天津)flash序列号急求flash序列号cc防火墙web防火墙有什么作用100days英文的一百天怎么说微盟价格微盟怎么收费?btestBTEST软件测试工程师培训女孩适合学吗?就业前景如何呢?元宝汇为什么我喝汇圆肾宝喝的阳痿了?
备案域名查询 网站虚拟主机空间 免费国际域名 万网域名代理 域名备案号查询 域名交易网 贝锐花生壳域名 便宜服务器 息壤备案 搬瓦工官网 omnis payoneer 新世界电讯 xfce 云全民 圣诞促销 建立邮箱 admit的用法 cdn加速原理 metalink 更多