5

Google Apps 脚本脚本的最大递归深度是多少?我有一个函数,match_recurse它看起来像下面的伪代码:

function match_recurse(array) {
  for (i=0, i<3, i++) {
    var arr2 = array.copy().push(i);
    if (is_done(arr2)) break;
    match_recurse(arr2);
  }
}

(它也返回它的结果,但我不想夸大这个问题。)

现在,由于执行出错,执行记录和日志没有保存,所以我无法知道我的is_done函数是否做错了。我可以在纸上解决一些问题并检查递归深度,但我不知道最大值应该是多少。

在网上看,我看到一篇文章提到,如果你通过 Window 对象,IE 的最大调用堆栈为 13,但没有别的。

4

2 回答 2

4

从这里可以看出,它是 1000:

function recurse(i) {
  var i = i || 1;
  try {
    recurse(i+1);
  } catch (e) {
    Logger.log(i);
  }
}
于 2012-10-18T05:20:41.573 回答
2

堆栈深度值没有记录。执行下面的代码可以看出这个值等于1000。

function getStackDepth(curvalue) {
  try {
    curvalue = getStackDepth(curvalue) + 1;
  }
  catch(err) {
  }
  return curvalue;
}

function test() {
  var depth = getStackDepth(2);
  debugger;
}
于 2012-10-18T05:23:34.023 回答