2016-09-13 3 views
0

Я хотел бы, чтобы объект любитСоздание рекурсивная функция

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 
} 

возвращается в настоящее время пустой объект {}

ответ

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]); 
    } 
Смежные вопросы