“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,点击查看活动详情”
const obj1 = {
a: 1,
b: {
f: '2',
g: '3',
},
c: {
d: [
1,
2,
{
e: true,
},
],
},
}
将以上数据转成以下数据格式
const obj2 = {
a: 1,
'b.f': '2',
'b.g': '3',
'c.d.0': 1,
'c.d.1': 2,
'c.d.2.e': true
}
转换代码
let result = {}
let comType = ['object', 'array']
function plat(obj, prekey, resobj) {
prekey = prekey ? prekey + '.' : ''
let keys = Object.keys(obj)
keys.forEach((item) => {
let val = obj[item]
let type = typeof val
if (comType.indexOf(type) != -1 && val) {
plat(val, prekey + item, resobj)
} else {
if (val !== null && val !== undefined) {
resobj[prekey + item] = val
}
}
})
}
plat(obj1, '', result)