制作递归函数

时间:2016-09-13 02:59:28

标签: 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
}

现在返回空对象{}

1 个答案:

答案 0 :(得分:0)

它返回您创建的最后一个对象,或者返回分配给“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]);
  }