I am trying to convert a flat object in dot notation (like MongoDb uses for the updates) into a hierarchical one.
The input object for example is:
var flat = {
    "a": 123,
    "b.c": "234",
    "b.d.e": 345
}
The current conversion code is:
var obj = {};
var parent = obj;
Object.keys(flat).forEach(function(key) {
    var subkeys = key.split('.');
    var last = subkeys.pop();
    subkeys.forEach(function(subkey) {
        parent[subkey] = typeof parent[subkey] === 'undefined' ? {} : parent[subkey];
        parent = parent[subkey];
    });
    parent[last] = flat[key];
    parent = obj;
});
Is there a better way (JS trick) to do it?
 
    