我想处理一下通过antd 的form表单拿到字段a.b.c=1和a.b.d=2后,我想处理一下,大家有什么好的想法
拿到的数据:
{
a.b.c:1,
a.b.d:2
}
想处理成:
{
a:{
b:{
c:1,
d:2
}
}
}
我想处理一下通过antd 的form表单拿到字段a.b.c=1和a.b.d=2后,我想处理一下,大家有什么好的想法
拿到的数据:
{
a.b.c:1,
a.b.d:2
}
想处理成:
{
a:{
b:{
c:1,
d:2
}
}
}
var obj = {
"a": 3,
"a.b.c": 1,
"a.b.d": 2,
"a.b.e": {
"j.k.f": 1
}
}
function desc(obj) {
const temp = {}
each(obj, temp)
function each (obj, temp) {
for (keys in obj) {
keys.split(".").reduce((prev, current, index, arr) => {
let k = `${prev}.${current}`
eval(`
if (prev) {
if (typeof temp${prev} !== "object") {
temp${prev} = {}
}
};
if (typeof obj[k.substr(1)] !== "object") {
temp${k} = temp${k} ? temp${k} : obj[k.substr(1)] ? obj[k.substr(1)] : {};
}else {
temp${k} = {}
}
`)
return k
}, "")
if (keys.indexOf('.') !== -1 && typeof obj[keys] === "object") {
eval(`each(obj[keys], temp.${keys})`)
}
}
}
return temp
}
desc(obj)
自己实现了一下,楼主有好方法抖我一下