原始数据:
let form = { 'data': { 'user.title': '标题', 'data.name': '名字', }, };
最终效果:
let json = { 'data': { 'user': { 'title': '标题', }, 'data': { 'name': '名字', }, }, };
复杂一点:
let form = { 'data': { 'user.title': '标题', 'user.name': '名字', 'data.title': '标题', 'data.name': '名字', }, 'admin.data': { 'form.user.title': '标题', 'form.user.name': '名字', }, }; let json = { 'data': { 'user': { 'title': '标题', 'name': '名字', }, 'data': { 'title': '标题', 'name': '名字', }, }, 'admin': { 'data': { 'form': { 'user': { 'title': '标题', 'name': '名字', }, }, }, }, };
已解决
悬赏分:60
- 解决时间 2021-11-28 18:06
点赞 0反对 0举报 0
收藏 0
分享 1
回答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 }``
支持 0 反对 0 举报2021-11-28 10:17
-
let form = { 'data': { 'user.title': '标题', 'data.name': '名字', }, }; let newform = { } for(let key in form) { newform[key] = {}; for(let j in form[key]) { let keyArr = j.split('.'); newform.data[keyArr[0]] = {} newform.data[keyArr[0]][keyArr[1]] = form.data[j] } }
支持 0 反对 0 举报2021-11-28 10:58