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.
华为云怎么样?华为云用在线的方式将华为30多年在ICT基础设施领域的技术积累和产品解决方案开放给客户,致力于提供稳定可靠、安全可信、可持续创新的云服务,做智能世界的“黑土地”,推进实现“用得起、用得好、用得放心”的普惠AI。华为云作为底座,为华为全栈全场景AI战略提供强大的算力平台和更易用的开发平台。本次年终聚惠618活动相当给力,1核2G内存1m云耀云服务器仅88元/年起,送主机安全基础版套餐,...
inlicloud怎么样?inlicloud(引力主机)主要产品为国内NAT系列VPS,目前主要有:上海联通NAT(200Mbps带宽)、宿州联通NAT(200Mbps带宽)、广州移动NAT(200Mbps带宽)。根据官方的说法国内的NAT系列VPS不要求备案、不要求实名、对中转要求也不严格,但是,禁止任何形式的回国!安徽nat/上海联通/广州移动/江门移动nat云主机,2核1G/200Mbps仅...
Hostadvice主机目录对我们的服务进行了测试,然后给PQ.hosting颁发了十大WordPress托管奖。为此,宣布PQ.Hosting将在一周内进行折扣优惠,购买和续订虚拟服务器使用优惠码:Hostadvice ,全部优惠10%。PQ.hosting,国外商家,成天于2019年,正规公司,是全球互联网注册商协会 RIPE 的成员。主要是因为提供1Gbps带宽、不限流量的基于KVM虚拟的V...
js递归函数为你推荐
chartboost如何在Chartboost后台建立广告sql四舍五入sql怎样四舍五入保留小数点后1位小明发布首页永久网站2015小明发布看看永久域在哪里能找到免费的youtube创始人世界第一大网站是什么?微信如何只发文字微信朋友圈如何只发文字,怎么发文字不要图云输入法QQ云输入法怎样调整候选词的个数?特斯拉model3降价特斯拉model 3中国有补贴吗yui3yui 3 月9日 出的专辑的情报微盟价格为什么这么多人用微盟,微盟都有哪些优势在线操作系统常见的电脑操作系统有哪些?各有什么优缺点
国际域名抢注 中国万网虚拟主机 阿里云邮箱登陆首页 香港cdn shopex空间 香港新世界电讯 hnyd 域名和空间 国外免费asp空间 如何安装服务器系统 卡巴斯基是免费的吗 创建邮箱 阿里云官方网站 shuang12 免费的asp空间 德隆中文网 全能空间 华为云建站 php服务器 摩尔庄园注册 更多