【发布时间】:2014-11-25 11:34:55
【问题描述】:
我正在尝试让递归函数在 jQuery 中工作,但出现以下异常:
'未捕获 RangeError: 超出最大调用堆栈大小'
我的理解是递归函数必须以某种方式无限运行,但我无法弄清楚为什么会发生这种情况。谢谢...
jQuery.fn.reduceNumber = function(numberToReduce) {
if (numberToReduce < 10 || numberToReduce == 11 || numberToReduce == 22 || numberToReduce == 33){
return numberToReduce;
} else {
var newNumberToReduce = numberToReduce.toString().substring(0,1) + numberToReduce.toString().substring(1,2);
return ($(this).reduceNumber(newNumberToReduce));
}
}
$(document).ready(function(){
$("#foo").html($(this).reduceNumber(12));
});
【问题讨论】:
-
应该通过什么方式减少数量?现在唯一的减少方法是如果数字有三位数或更多,则获取前两位数。你这样做的奇怪方式表明实际上是有其他意图的。
标签: javascript jquery recursion