javascript - 制作递归函数

标签 javascript recursion google-apps-script

我想制作一个像这样的对象

obj = {2 : {3 : {4 : { } } } }

function tsttt (){
  var tstObj = {};
  var cntr = 0;    //counter
  var key = [2,3,4];   ///keys array what I want to put in object

  function re(obj){
    var k = key[cntr];
    if(cntr == 2){
      return obj;
    }else if(!(k in obj)){
      obj[k] = {};
    }
    cntr++;
    return re(obj[k]);
  }
  var rslt = re(tstObj);
  Logger.log(rslt); //google apps script log
}

它现在返回空对象{}

最佳答案

它返回您创建的最后一个对象,或分配给“3”的属性。如果您希望它返回完整的对象,则让它返回 tstObj。

  function re(obj){
    var k = key[cntr];
    if(cntr == 2){
      return tstObj;
    }else if(!(k in obj)){
      obj[k] = {};
    }
    cntr++;
    return re(obj[k]);
  }

关于javascript - 制作递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39461602/

相关文章:

javascript - jQuery : Same class number on two different links

recursion - 使用递归和模式匹配从列表中删除元素

google-apps-script - 在已制成的Google表单上查找元素的ID?

javascript - Google Apps脚本设置相对高度属性

google-apps-script - UrlFetchApp 在脚本编辑器中工作,而不在文档中工作

c# - 如何获取通过Json获取的对象内部的值

javascript - 'undefined' 不是函数(评估 'Backbone.$(window).on(' hashchange',this.checkUrl)')

javascript - 使用 .animate .scrollTop() 滚动时歌剧中的屏幕闪烁

javascript - 递归地将数组元素放入自己的数组中

python - 使用Python创建递归拓扑树