我想制作一个像这样的对象
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/