我正在尝试将点表示法的平面对象(如 MongoDb 用于更新)转换为分层对象。
输入对象例如是:
var flat = {
"a": 123,
"b.c": "234",
"b.d.e": 345
}
当前的转换代码是:
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;
});
有没有更好的方法(JS技巧)来做到这一点?