我正在JS编写递归函数并遇到一些麻烦.让我们从这个非常基本的功能开始:
function traverse(thing)
{
if (typeof traverse.depth == 'undefined')
traverse.depth = 1;
else
traverse.depth ++;
if (thing.child)
traverse(thing.child);
}
Run Code Online (Sandbox Code Playgroud)
所以这样可以正常工作,并且depth可以作为静态var的各种类型,但问题是在像C这样具有适当静态变量的语言中,当你退出函数时,这个变量会(表面上)减少,所以它是一个真实的深度.如果我有三个盒子,其中包含三个盒子,每个盒子包含三个盒子等等,我们基本上钻到最深的盒子里,直到没有孩子,然后退出一个级别给一个兄弟姐妹,并穿过它的孩子.上述代码的问题在于深度不断增加和增加,即使从最古老的祖先到最小的孩子,TRUTH深度可能只有3或4.如果每个级别上有80个兄弟姐妹,那个深度计数器将会飙升.
如何跟踪JS递归函数的真实深度?
我正在研究计算代码的一小部分.我需要确定每当javascript/jQuery中出现递归时我需要终止递归.
在javascript/jQuery中有没有支持这个的api?