recursion practice - append nodes to object

// giving an empty object and a list,
// return the object append the node by sequence in the list

var nodeList = ["a", "b", "c"];
var obj = {};

// output {a:{b:{c:{}}}}

var genereteNode = (nodeList)=>{
    
   obj = _process(obj, nodeList) 
}

// recursion 
var _process = (obj, nodeList)=>{
    // base conditions
    if(nodeList.length == 0) return;

    if(nodeList.length === 1){

        var node = nodeList[0];
        
        obj[node] = {};
        
        return;
    }

    var nodeShifted = nodeList.shift();
    
    // general solution
    obj[nodeShifted] = {};
    
    // reduce function
    _process(obj[nodeShifted], nodeList)

    //console.log(obj);
    return obj;
}

genereteNode(nodeList);

console.log(obj);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容