如何递归解析javascript对象以动态构建对象

如何递归解析javascript对象以动态构建对象,javascript,node.js,Javascript,Node.js,我使用的模板对象映射包含表示对象属性和环境变量名称的键/值对 例如。。。我想拥有以下对象 var template = { propA: 'ENV_VAR_PROP_A', propB: 'ENV_VAR_PROP_B', propC: { propD: 'ENV_VAR_PROP_D' } } 我想使用下面的函数 var parseConfig = function (template) {

我使用的模板对象映射包含表示对象属性和环境变量名称的键/值对

例如。。。我想拥有以下对象

   var template = {
        propA: 'ENV_VAR_PROP_A',
        propB: 'ENV_VAR_PROP_B',
        propC: {
            propD: 'ENV_VAR_PROP_D'
        }
    }
我想使用下面的函数

var parseConfig = function (template) {
    var config = {};
    for(var prop in template){
        var key = template[prop];
        var val = process.env[key];
        if(val) {
            config[prop] = val;
        }
    }
    return config;
};
注意上述函数对我不起作用,因为它在属性上的深度不超过一层

解析模板的结果应该是如下所示的对象

var template = {
    propA: '{result of process.env.ENV_VAR_PROP_A}',
    propB: '{result of process.env.ENV_VAR_PROP_B',
    propC: {
        propD: '{result of process.env.ENV_VAR_PROP_D}'
    }
}
这个问题的副本。这个问题的副本。