如何解析一个多层次对象的键中包含点(.)的对象?
示例:
{
"data.firstName": "John",
"data.lastName": "Doe",
"data.email": "example@example.org"
}
预期结果:
{
data: {
firstName: "John",
lastName: "Doe",
email: "example@example.org"
}
}
附言:你可以在MongoDB的find查询中找到这样的集合,但我找不到它是如何做到的,所以这个问题来了。
您可以执行以下操作:
var data = {
"data.firstName": "John",
"data.lastName": "Doe",
"data.email": "example@example.org"
}
var result = {};
Object.keys(data).forEach(function (key) {
var value = data[key];
var keyParent = key.split(".")[0];
var keyChild = key.split(".")[1];
if(!result[keyParent]){
result[keyParent] = {};
}
result[keyParent][keyChild] = value;
});
结果对象将与您正在查找的结果类似。