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.
趣米云怎么样?趣米云是创建于2021年的国人IDC商家,虽然刚刚成立,但站长早期为3家IDC提供技术服务,已从业2年之久,目前主要从事出售香港vps、香港独立服务器、香港站群服务器等,目前在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。由于内存资源大部分已售,而IP大量闲置,因此我们本月新增1c1g优惠套餐。点击进入:趣米云官方网站地址香港三网CN2云服务器机型活...
iON Cloud怎么样?iON Cloud升级了新加坡CN2 VPS的带宽和流量最低配的原先带宽5M现在升级为10M,流量也从原先的150G升级为250G。注意,流量也仅计算出站方向。iON Cloud是Krypt旗下的云服务器品牌,成立于2019年,是美国老牌机房(1998~)krypt旗下的VPS云服务器品牌,主打国外VPS云服务器业务,均采用KVM架构,整体性能配置较高,云服务器产品质量靠...
CloudCone是一家成立于2017年的国外VPS主机商,提供独立服务器租用和VPS主机,其中VPS基于KVM架构,多个不同系列,譬如常规VPS、大硬盘VPS等等,数据中心在洛杉矶MC机房。商家2021年Flash Sale活动继续,最低每月1.99美元,支持7天退款到账户,支持使用PayPal或者支付宝付款,先充值后下单的方式。下面列出几款VPS主机配置信息。CPU:1core内存:768MB...
js递归函数为你推荐
chartboost如何在Chartboost后台建立广告离线包百度地图离线包如何下载?爱短信官网官方飞信,ET飞信,爱短信飞信插件哪个好用??短信营销方案有谁实验过短息营销,这个方法好吗?大家可以试试啊!微信如何只发文字微信朋友圈怎样只发文字gas是什么意思GC什么意思防火墙技术应用常用防火墙技术有哪几种怎么查微信注册时间怎么查看自己的微信号用了多久怎么查微信注册时间怎么知道微信上次登录时间validdate怎样解决oracle报错is not a valid date and time
台湾vps 下载虚拟主机 中文域名 什么是二级域名 budgetvm vps.net 主机点评 omnis 视频存储服务器 浙江独立 卡巴斯基永久免费版 帽子云 刀片服务器是什么 百度云1t 100mbps idc查询 in域名 drupal安装 闪讯官网 跟踪路由命令 更多