我有一个这样的对象:
var data = {"prop.health": 1, "prop.cost":1, "prop.time":1}
我想把它改成这样的对象:
{
"prop": {
"health": 1,
"cost":1,
"time":1
}
}
这是我的代码:
_.each(data, function (value, key) {
var split = key.split('.')
if (split.length > 1) {
data[split[0]] = data[split[0]] || {}
data[split[0]][split[1]] = value
delete data[key]
}
})
但这只适用于 1 层嵌套。您将如何编写它以确保它适用于您需要的深度嵌套属性?
最佳答案
您可以使用 _.transform
的组合和 _.set
, 例如
data = _.transform(data, function(transformed, val, key) {
_.set(transformed, key, val);
});
结果
{"prop":{"health":1,"cost":1,"time":1}}
关于javascript - 将点拆分为单独的对象javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33662665/