Google脚本(JS) - 最大递归深度



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函数是否错误地完成了其工作。i 可以在纸上做一些问题并检查递归深度的情况,但我不知道最大值应该是什么。

在网上看,我看到一篇文章提到,如果您浏览窗口对象,则IE具有13个最大调用堆栈,但没有其他。

它是1000,正如人们可以从这里看到的:

function recurse(i) {
  var i = i || 1;
  try {
    recurse(i+1);
  } catch (e) {
    Logger.log(i);
  }
}

未记录堆栈深度值。执行以下代码表明此值等于1000。

function getStackDepth(curvalue) {
  try {
    curvalue = getStackDepth(curvalue) + 1;
  }
  catch(err) {
  }
  return curvalue;
}
function test() {
  var depth = getStackDepth(2);
  debugger;
}

最新更新