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

时间:2016-10-12 16:56:53

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

0 个答案:

没有答案