有什么比较简化的方法可以把如下对象:
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
}`
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答814 阅读