记一道前端面试逻辑题:给定任意JSON数据……

2024-04-18 19:19:33 浏览数 (1)

给定任意JSON数据,请实现方法提取数据字典,即将树状多级字段压缩为一级字段(xx.yy.zz...)并提取其类型。 要求: 1.可上网查资料,但不要直接粘贴。(查也白查) 2.代码结构清晰,执行结果正确

代码语言:javascript复制
const testData1 = {
  a:1,
  b:{
    c:"test",
    d:{
      userName:"zhangpeiyue"
    }
  },
  e:{
    f:12,
    g:13,
    h:{
      m:5
    }
  }
}
// 期望结果:
{
  a: 1, 
  'b.c': 'test',
  'b.d.userName': 'zhangpeiyue',
  'e.f': 12,
  'e.g': 13,
  'e.h.m': 5
}

参考答案:

代码语言:javascript复制
function json_dict(obj){
  const obj2 = {};
  for(let key in obj){
    if(obj[key].constructor === Object){
      for(let key2 in json_dict(obj[key])){
        obj2[key "." key2] = obj[key "." key2] = obj[key][key2]
      }
    }else{
      obj2[key] = obj[key];
    }
  }
  return obj2;
}

0 人点赞