有什么比较简化的方法可以把如下对象:
let obj = {
"a.c.d": 1,
"e.d.w": 2
}
转成:
{
a:{
c: {
d: 1
}
},
e:{
d:{
w: 2
}
}
}
有什么比较简化的方法可以把如下对象:
let obj = {
"a.c.d": 1,
"e.d.w": 2
}
转成:
{
a:{
c: {
d: 1
}
},
e:{
d:{
w: 2
}
}
}
`function handle(obj) {
let obj2 = {};
for (var k in obj) {
var data = k.split('.');
data.reduce((prev, cur, index, arr) => {
if (!prev[cur]) {//不存在等于空对象
prev[cur] = {};
}
if (index + 1 == arr.length) {
if (Object.prototype.toString.call(obj[k]) === '[object Object]') {//值为对象递归调用
prev[cur] = handle(obj[k])
} else {
prev[cur] = obj[k]
}
}
return prev[cur]
}, obj2)
}
return obj2
}`
13 回答12.7k 阅读
2 回答4.9k 阅读✓ 已解决
7 回答1.8k 阅读
5 回答1.3k 阅读
3 回答2.1k 阅读✓ 已解决
8 回答2.2k 阅读
5 回答668 阅读