您好我是javascript的新手。我有一个递归方法,如下所示
function index() {
// done some code here
$.ajax({
url: 'foo.htm',
success: function( response ){
// do something with the response
index(); // recursion
}
});
我想在10次迭代后完全停止递归。我怎样才能做到这一点? 在此先感谢
答案 0 :(得分:4)
像这样:
function index(c) {
if (c>10) return;
// done some code here
$.ajax({
url: 'foo.htm',
success: function( response ){
// do something with the response
index((c||0)+1); // recursion
}
});
}
您可以将其称为
index();
计数器将在第一次增量时自动初始化。
另一种模式,在调用次数可能发生变化时很有用,是通过递减计数器:
function index(nbIterations) {
if (!nbIterations) return;
.ajax({
url: 'foo.htm',
success: function( response ){
index(nbIterations-1);
}
});
}
index(10)
答案 1 :(得分:2)
任何递归函数都需要"终止条件"停止递归通常,格式可能类似于:
functionName() {
if (terminatingCondition) {
return;
}
performLogic();
functionName();
}
推断您的代码:
function index() {
// terminating condition goes here
// logic goes here
$.ajax({
url: 'foo.htm',
success: function( response ){
// more logic goes here
index(); // recursion
}
});
}
那是什么条件?什么时候 它会终止?
我想在10次迭代后完全停止递归。
然后一个计数器应该做到这一点:
function index(iteration) {
if (iteration > 10) {
return;
}
// logic goes here
$.ajax({
url: 'foo.htm',
success: function( response ){
// more logic goes here
index(iteration + 1); // recursion
}
});
}
然后使用初始种子值调用它:
index(1);