前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >记一道前端面试逻辑题:给定任意JSON数据……

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

作者头像
用户1272076
发布于 2024-04-18 11:19:33
发布于 2024-04-18 11:19:33
13100
代码可运行
举报
文章被收录于专栏:张培跃张培跃
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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;
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 张培跃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2022前端面试遇到的手写题总结
下面来看一道比较典型的问题,通过这个问题来对比几种异步编程方法:红灯 3s 亮一次,绿灯 1s 亮一次,黄灯 2s 亮一次;如何让三个灯不断交替重复亮灯?
helloworld1024
2022/09/22
7240
前端学习必备之ES6解构赋值的常见用法
我们先来看最基本的使用场景:变量赋值,先来看我们在平时开发中是怎么使用es5对变量赋值的:
张哥编程
2024/12/19
1040
2022必会的前端面试手写题
instanceof 运算符用于判断构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。
buchila11
2022/07/29
5830
一道面试题引起的思考
今天在认真干(划)活(水)的时候,看到群里有人发了一道头条的面试题,就顺便看了一下,发现挺有意思的,就决定分享给大家,并且给出我的解决方案和思考过程。
嘿嘿嘿
2018/12/17
3680
一道面试题引起的思考
js手写题汇总(面试前必刷)
event bus既是node中各个模块的基石,又是前端组件通信的依赖手段之一,同时涉及了订阅-发布设计模式,是非常重要的基础。
helloworld1024
2022/11/09
1.1K0
我在近期求职中遇到的前端面试问题及其解法
在今天的文章中,我想跟大家聊聊自己最近在 COVID-19 疫情下的求职经历中遇到的问题。另外,我还把自己的准备工作整理成一份资源清单供大家参考。
深度学习与Python
2020/09/14
1K0
滴滴前端一面经典手写面试题
一般来说,Promise.all 用来处理多个并发请求,也是为了页面数据构造的方便,将一个页面所用到的在不同接口的数据一起请求过来,不过,如果其中一个接口失败了,多个请求也就失败了,页面可能啥也出不来,这就看当前页面的耦合程度了
helloworld1024
2023/01/04
9300
前端面试高频20道手写题(二)
可以给img标签统一自定义属性data-src='default.png',当检测到图片出现在窗口之后再补充src属性,此时才会进行图片资源加载。
helloworld1024
2022/08/02
4770
记一次京东前端面试被问到的题目
浅拷贝是指,一个新的对象对原始对象的属性值进行精确地拷贝,如果拷贝的是基本数据类型,拷贝的就是基本数据类型的值,如果是引用数据类型,拷贝的就是内存地址。如果其中一个对象的引用内存地址发生改变,另一个对象也会发生变化。
helloworld1024
2022/11/15
4380
年底前端面试题总结(上)
HTTP1.0 中默认是在每次请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接,这就是短连接。当使用Keep-Alive模式时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接,这就是长连接。其使用方法如下:
loveX001
2022/10/11
8080
一年前端面试打怪升级之路
Promise 是异步编程的一种解决方案:从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本意上讲,它是承诺,承诺它过一段时间会给你一个结果。promise有三种状态: pending(等待态),fulfiled(成功态),rejected(失败态) ;状态一旦改变,就不会再变。创造promise实例后,它会立即执行。
loveX001
2022/11/21
4330
【中高级前端】必备,30+高频手写题及详细答案(万字长文),看“你”怎么难倒我
所以只要遍历实例对象的原型链,挨个往上查找看是否有与Fn的prototype相等的原型,直到最顶层Object还找不到,那么就返回false。
前端胖头鱼
2022/07/24
1.1K0
【中高级前端】必备,30+高频手写题及详细答案(万字长文),看“你”怎么难倒我
高级前端手写面试题
该方法的参数是 Promise 实例数组, 然后其 then 注册的回调方法是数组中的某一个 Promise 的状态变为 fulfilled 的时候就执行. 因为 Promise 的状态只能改变一次, 那么我们只需要把 Promise.race 中产生的 Promise 对象的 resolve 方法, 注入到数组中的每一个 Promise 实例中的回调函数中即可.
helloworld1024
2022/09/17
7150
前端面试被问到的js手写面试题汇总
类的继承在几年前是重点内容,有n种继承方式各有优劣,es6普及后越来越不重要,那么多种写法有点『回字有四样写法』的意思,如果还想深入理解的去看红宝书即可,我们目前只实现一种最理想的继承方式。
helloworld1024
2022/11/18
5890
2018春招前端面试: 闯关记(精排精校)
box-sizing有两个值:content-box(W3C标准盒模型),border-box(怪异模型),
CRPER
2018/08/28
1.6K0
2018春招前端面试: 闯关记(精排精校)
社招前端一面经典手写面试题集锦
String.prototype.padStart 和 String.prototype.padEnd是ES8中新增的方法,允许将空字符串或其他字符串添加到原始字符串的开头或结尾。我们先看下使用语法:
helloworld1024
2022/09/17
4000
美团前端高频面试题集锦_2023-03-15
实际开发中不会使用createElement来创建ReactElement的,一般都是使用JSX的形式开发。
gogo2027
2023/03/15
9580
一文说透MySQL JSON数据类型
JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。
星哥玩云
2022/06/06
5.2K0
一文说透MySQL JSON数据类型
前端经典面试题(60道前端面试题包含JS、CSS、React、网络、浏览器、程序题等)
原文地址:https://mp.weixin.qq.com/s/PTSaytcf3xgOp6C9l3Pvjw
前端迷
2021/06/24
1.1K0
前端手写面试题合集
String.prototype.padStart 和 String.prototype.padEnd是ES8中新增的方法,允许将空字符串或其他字符串添加到原始字符串的开头或结尾。我们先看下使用语法:
helloworld1024
2022/12/07
3670
相关推荐
2022前端面试遇到的手写题总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验