如何把str = {a.b.c:1,a.b.d:2,g.h.u:2,g.h.t:9}转换为{a:{b:{c:1,d:2}},g:{h:{u:2,t:9}}
如何把str = {a.b.c:1,a.b.d:2,g.h.u:2,g.h.t:9}转换为{a:{b:{c:1,d:2}},g:{h:{u:2,t:9}}
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
6条回答 默认 最新
£漫步 云端彡 2022-02-22 15:46关注以下代码采用递归执行,不论有多少层级,都可以封装
let str = { 'a.b.c': 1, 'a.b.d': 2, 'g.h.u': 2, 'g.h.t': 9, 'g.h.k.l': 5, } let result = {}; function assemble(index, keys, value, obj) { if (index == keys.length - 1) { obj[keys[index]] = value; return; } else { if(!obj[keys[index]]){ obj[keys[index]] = {}; } assemble(index+1, keys, value, obj[keys[index]]); } } for (let item in str) { let keys = item.split("."); assemble(0, keys, str[item], result); } console.log(result)本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报