let obj={
a:1,
b:[1,2,3,{a:1}],
c:{d:12,e:[1,2,{r:1}]}
}
function flatten(obj){
let res={}
function process(key,value){
if(typeof value !=='object'){
res[key]=value;
}else if(Array.isArray(value)){
for (const i in value) {
process(`${key}[${i}]`,value[i])
}
}else{
for (const i in value) {
process(`${key}.${i}`,value[i])
}
}
}
process('',obj)
return res
}
console.log(flatten(obj))
{
'.a': 1,
'.b[0]': 1,
'.b[1]': 2,
'.b[2]': 3,
'.b[3].a': 1,
'.c.d': 12,
'.c.e[0]': 1,
'.c.e[1]': 2,
'.c.e[2].r': 1
}
2021-06-05 对象扁平化
最新推荐文章于 2024-10-30 18:24:25 发布