js递归怎么结束

var result=""
function aa(num){
bb(num,bb)
}
function bb(num){
if(num>1){
result++;

}
num=num-1;

}

aa方法调用bb递归.这个循环怎么才可以结束呢
[b]问题补充：[/b]

bb 写漏了
function bb(num){
...
return bb
}

bb 自己调用自己不叫递归吗？

Rowen用while确实不错..能够解决我的问题.
[b]问题补充：[/b]
function bb(num){
...
return num;

}
[b]问题补充：[/b]

5个回答

[code="java"]

<br><br> var result=0 <br> function aa(num){ <br> bb(num); <br> alert(result);<br> } <br> function bb(num){ <br> while(num&gt;1){ <br> result++; <br> num=num-1;<br> } </p> <p>return result;</p> <p>} <br> window.onload=aa(5);<br>

[/code]

[code="java"]

<br><br> var result=0 <br> function aa(num){ <br> bb(num);</p> <pre><code>alert(result); </code></pre> <p>} <br> function bb(num){ <br> while(num&gt;1){<br> result++; </p> <pre><code> num =num-1; bb(num); } </code></pre> <p>return result;</p> <p>} <br> window.onload=aa(4);<br>

[/code]

function bb(num){

if(num>1){

result++;

num=num-1;
return bb(num);
}

else

return result;

}

javascript中递归实现1+2+3+4+...+100怎么实现，js递归输出结果可以用log
javascript中递归实现1+2+3+4+...+100怎么实现，js递归输出结果可以用log 这里的递归是编写函数么？还是用什么办法，写了几个都不行，求助
js 递归 传入的变量值每次在递归时被初始化了

js递归算法，判断返回true或false
[ { "id": "510489e1acab613446b69034eada2943", "number": "1", "name": "模块（一）", "superclass": "0", "superclass_name": "无", "higrade": "", "lograde": "", "remark": "", "standard": "科学性和创新性" }, { "id": "b273cb4050abf959a823ff07ef95deec", "number": "1.1", "name": "管理方法", "superclass": "510489e1acab613446b69034eada2943", "superclass_name": "模块（一）", "higrade": "10", "lograde": "", "remark": "", "standard": "所应用的管理方法（技术）符合普遍性认知的科学规律，符合质量品牌管理发展趋势。" }, { "id": "35362a8ba4fbe04a9e23496806910dea", "number": "1.1.1", "name": "大萨达", "superclass": "b273cb4050abf959a823ff07ef95deec", "superclass_name": "管理方法", "higrade": "", "lograde": "", "remark": "", "standard": "" }, { "id": "1cf9f7ec5fb807d5477765c8ddb5b310", "number": "1.2", "name": "创新性经验", "superclass": "510489e1acab613446b69034eada2943", "superclass_name": "模块（一）", "higrade": "15", "lograde": "", "remark": "", "standard": "在管理方法（技术）本身或（和）应用过程中有创新性经验（成果）。" }, { "id": "bc230f233763864c200c465d24feb9ed", "number": "1.3", "name": "核心内容", "superclass": "510489e1acab613446b69034eada2943", "superclass_name": "模块（一）", "higrade": "10", "lograde": "", "remark": "", "standard": "能成功应用该管理方法（技术）的核心内容，且逻辑清晰，内容完整。" }] 上面的数据格式，我新插入一条数据，新插入如果higrade 不为空，且superclass是1.1.1，如果1.1.1的higrade为空，继续找1.1.1的上一级，就是一直向上找直到找到superclass为0为止，这样的递归算法怎么写

javascript递归调用
var array=[ {name:'浙江省',leaf:1,children: [ {name:'杭州市',leaf:1,children: [ {name:'西湖区',leaf:0,,children:null}, {name:'萧山区',leaf:0,children:''} ] }, {name:'温州市',leaf:1,children:[{name:'乐清市',leaf:0,children:null}, {name:'苍南县',leaf:0,children:''}]} ] } ]; function getReionByRegionName(name,array){}//name为地区名,arr为地区的数组集合 现在我需要地区为name的所有信息，包括其子地区信息 比如name='杭州市',则返回{name:'杭州市',children:[{name:'西湖区',children:null},{name:'萧山区',children:''}]}, name='浙江省',则返回name:'浙江省',children: [ {name:'杭州市',children:[{name:'西湖区',children:null},{name:'萧山区',children:''}]}, {name:'温州市',children:[{name:'乐清市',children:null},{name:'苍南县',children:''}]} ] } //这个方法不行// function getReionByRegionName(name,array){ var o; var nextObj; for (i = 0; i < array.length; i++) { o = array[i]; if(name == o.name){ return array[i]; }else{ if(null!=ch){ return document.getRegionByName(name,ch); }else{ if(''==ch){ ......................... } continue; } } } 当然也要注意性能，数据有点多！ 各位javascript达人帮哈忙！thanks [b]问题补充：[/b] atian25 这个肯定不行啊。 因为当递归当县一级的时候children都为空了。你这样肯定报错。 [b]问题补充：[/b] 还是不行啊。 当递归到县级的时候children都为空了，你再迭代就出去for循环了。 请帮忙具体能运行了再解答！谢谢。
JavaScript用递归方法求1-50的奇数和。

JS递归查找对象数组的某个值？
**代码如下** 任意给一个对对象或者数组，通过遍历，递归查找其中是否存在某个值， 代码我已经写的差不多了，但是只支持单次查找。 因为flag重置问题没法解决。 如果在函数体最后if里面，flag= false，则涉及到对象中的数组的时候就不起作用了。因为if(flag)虽然执行了 但是**并没有跳出递归。** 所以我的问题就是怎么正确重置flag~ 希望有朋友能够解惑~_** ``` <script type="text/javascript"> var flag = false; function exitindata(data,item){ if(data instanceof Array){ var i = data.length; while(i--){ if(flag){ break; } if(data[i] === item){ flag = true; break }else{ if(data[i] instanceof Array || data[i] instanceof Object){ exitindata(data[i],item); } } } }else{ for(var key in data){ if(flag){ break } if(data.hasOwnProperty(key) === true){ if(data[key] === item){ flag = true; break }else{ if(data[key] instanceof Array || data[key] instanceof Object){ exitindata(data[key],item); } } } } } if(flag){ return true; }else{ return null } } function find(item){ var data = [9, { item1:50, item2:94, item3:[ { cc: 9999, ff:9090 } ] } ,65,1111,54,11,0,1,3,7,8,5,649,841]; console.log(exitindata(data,item)); } find(9090) find(9091) find(9999) </script> ``` 单次查找没问题。 多次就出问题啦

``` function f1(n){ if(v1==1){ return 1; } return 2*f1(n-1)+1; } ``` 做了一个简单的递归函数 我输入的数比较小的时候都符合规律 但是当我 输入大于40多的数的时候 发现 输出的结果编程偶数了 根据公式来说出来的数一定是奇数 不可能数显偶数 方法应该没问题 为什么会出现这种情况 我用的原生JS做的
javascript递归生成树

js 递归函数，简化代码

javascript中递归调用问题

JavaScript用递归方法打印出菱形图案。
# JavaScript用递归方法打印出菱形图案。 ## 就类似于这种菱形，不过要用递归的方法 ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>菱形</title> <script> function ling(){ for(var a=4;a>-5;a--){ for(var b=-5;b<5;b++){ if(Math.abs(a)+Math.abs(b)<5){ document.write("*"); }else{ document.write("-"); } } document.write("<br/>"); } } ling(); </script> </head> <body> </body> </html> ```
js递归遍历树形结构json的问题
javascript递归时出现死循环，该如何解决
<pre name="code" class="js">function Condition(tagName,attrName,attrValue) { this.tagName=tagName; this.middleStart="&lt;tag-name name="\&amp;quot;&amp;quot;+tagName+&amp;quot;\&amp;quot;"&gt;"; this.middleEnd="&lt;/tag-name&gt;" this.child=null; this.childResult=""; } Condition.prototype.addChild=function(childCondition) { this.child=childCondition; this.childResult=this.child.showXml(); } Condition.prototype.getChild=function() { if(this.child==null) { return this; } else { return this.getChild();//这里是递归 } } Condition.prototype.showXml=function() { return this.middleStart+this.childResult+this.middleEnd; } function test1() { var con=new Condition("table",null,null); var con1=new Condition("tr",null,null); var con2=new Condition("td",null,null); var child1=con.getChild(); child1.addChild(con1); var child2=con.getChild(); child2.addChild(con2); var child3=con.getChild(); alert(con.showXml()); }</pre> <p> </p><br /><strong>问题补充：</strong><br />这个程序的功能主要是向服务器端的xml文件写入数据，这个xml文件里面描述了html页面的元素结构，比如html文件是这样: <br /><table border="1"><tbody><tr><td></td></tr></tbody></table>,则对应的此xml文件则是: <br />&lt;tag-name name="table"&gt; <br /> &lt;tag-attribute attributename="border"&gt;1&lt;/tag-attribute&gt; <br /> &lt;tag-name name="tr"&gt; <br /> &lt;tag-name name="td"&gt; <br /> &lt;/tag-name&gt; <br />&lt;/tag-name&gt; <br />该xml文件是在服务器端读取后封装成HtmlParser框架过滤网页内容时用的条件，以上的javascript代码就是用来生成这个XML文件的，因为HTML页面的层次有很多层，需要描述任意层次的HTML节点关系
js递归斐波拉契数列，统计运行次数，怎么改才是正确的，谢谢
var count=0; var fib = function(n) { count++; if (n==0 || n==1) return 1; return fib(n-1)+fib(n-2); }; alert("运行次数："+ count +",运行结果："+fib(10));
C#/js/python 递归文件目录并存在字典中

js测试带记忆功能的递归函数和不带记忆功能的递归函数的执行时间具体哪个更快？
#js 代码如下： ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> //"use strict" /*生成带记忆功能的函数*/ function memorize(f){ var cache={}; return function(){ var key=arguments.length+Array.prototype.join.call(arguments,","); if(key in cache){ return cache[key]; }else{ return cache[key]=f.apply(this,arguments); } } } /*递归计算n的阶乘*/ function nj(n){ if(isFinite(n)&&n>0&&n==Math.round(n)){ if(!(n in nj)) nj[n]=n*nj(n-1); return nj[n]; } else return NaN; } nj[1]=1; var menj=memorize(nj); menj[1]=1; menj(80);//记录结果 var ms=(new Date).getTime(); console.log(ms); console.log(menj(80)); console.log((new Date).getTime()-ms); console.log("-----------------------------------------") var s=(new Date).getTime(); console.log(s); console.log(nj(80)); console.log((new Date).getTime()-s); </script> </head> <body> </body> </html> ``` 为什么不带记忆功能的递归函数的执行时间比带记忆功能的递归函数的执行时间短？

function a(arr, result){ if(!result){ result = []; } if(arr.length > 0){ result.push(arr[0]); arr.splice(0,1); }else{ return result; } } var aa = a([1,2,3,4,5]); console.log("result ==",aa);

20道你必须要背会的微服务面试题，面试一定会被问到

Windows可谓是大多数人的生产力工具，集娱乐办公于一体，虽然在程序员这个群体中都说苹果是信仰，但是大部分不都是从Windows过来的，而且现在依然有很多的程序员用Windows。 所以，今天我就把我私藏的Windows必装的软件分享给大家，如果有一个你没有用过甚至没有听过，那你就赚了????，这可都是提升你幸福感的高效率生产力工具哦！ 走起！???? NO、1 ScreenToGif 屏幕，摄像头和白板...

2020 年，大火的 Python 和 JavaScript 是否会被取而代之？
Python 和 JavaScript 是目前最火的两大编程语言，但是2020 年，什么编程语言将会取而代之呢？ 作者 |Richard Kenneth Eng 译者 |明明如月，责编 | 郭芮 出品 | CSDN（ID：CSDNnews） 以下为译文： Python 和 JavaScript 是目前最火的两大编程语言。然而，他们不可能永远屹立不倒。最终，必将像其他编程语言一...

AI 没让人类失业，搞 AI 的人先失业了

2020年，冯唐49岁：我给20、30岁IT职场年轻人的建议

B站是个宝，谁用谁知道???? 作为一名大学生，你必须掌握的一项能力就是自学能力，很多看起来很牛X的人，你可以了解下，人家私底下一定是花大量的时间自学的，你可能会说，我也想学习啊，可是嘞，该学习啥嘞，不怕告诉你，互联网时代，最不缺的就是学习资源，最宝贵的是啥？ 你可能会说是时间，不，不是时间，而是你的注意力，懂了吧！ 那么，你说学习资源多，我咋不知道，那今天我就告诉你一个你必须知道的学习的地方，人称...

【蘑菇街技术部年会】程序员与女神共舞，鼻血再次没止住。（文末内推）

Java校招入职华为，半年后我跑路了