2

我正在尝试将点表示法的平面对象(如 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技巧)来做到这一点?

4

0 回答 0