摘要:注意该题目摘录自。题目描述写一个方法,在一个未知对象中,找出所有的李鹏并对象输出它的引用地址,以及对应值。例如下面的一个对象百度李鹏李鹏解法这个题目考察的是应该是递归和中对的理解,以及对的应用。利用循环遍历对象。
注意:该题目摘录自:https://juejin.im/post/58d088...。我这里稍微做了些修改。
题目描述
写一个方法,在一个未知对象中,找出所有的“李鹏” 并 console.log 对象输出它的引用地址,以及对应值。例如下面的一个对象:
var tarrgetObj = {
a: { b: { c: { d: { e: { name: "百度" } }, l: { name: "李鹏--> QQ:3206064928" } } } }, d: "90", e: "90", l: { a: { b: { c: { version: "1.0.0.1", name: "李鹏--> QQ:3206064928" } } } } }
解法
这个题目考察的是应该是递归和Js中对object的理解,以及对typeof的应用。
我下面先贴出我自己的解法的核心代码:
思路讲解
(1)首先,我定义了两个数组path和result。其中path用于记录当前的已经走过的“路径”,它是一个临时变量;而result用于记录全部符合要求的数据。
(2)利用for循环遍历对象。需要注意的是,由于这是个未知“深度”的对象,所以我这里使用了递归。这样就可以把所有的“元素”都遍历一遍。明白了这个之后,下面的代码就是判断“元素”是否为‘object’。(我这里多一句嘴,关于typeof的用法,大家可以参考这里。)如果是object的话,那么就继续递归调用我们的方法;如果不是object,那么我们就取出它的值并判断是否符合我们的要求。如果符合,就把值添加到我们的result数组中。其实,这个思路最最终的一点就是path.pop(),或许有人要问:这里有这一句的代码有什么作用?下面我把调试信息贴出来,大家就能明白。
看了上图,就能明白,这里是利用递归的特点将path中走过的路径 一个一个剔除出去。想要明白这个思路,正确理解递归是前提。真心希望这个题目能够帮助到您。不足之处,还请大家指出。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/98449.html
摘要:微信公众号记录截图记录截图目前关于这块算法与数据结构的安排前。已攻略返回目录目前已攻略篇文章。会根据题解以及留言内容,进行补充,并添加上提供题解的小伙伴的昵称和地址。本许可协议授权之外的使用权限可以从处获得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目录 不...
摘要:每天会折腾一道及以上题目,并将其解题思路记录成文章,发布到和微信公众号上。三汇总返回目录在月日月日这半个月中,做了汇总了数组知识点。或者拉到本文最下面,添加的微信等会根据题解以及留言内容,进行补充,并添加上提供题解的小伙伴的昵称和地址。 LeetCode 汇总 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...
摘要:解析第题第题为什么的和的中不能做异步操作解析第题第题京东下面代码中在什么情况下会打印解析第题第题介绍下及其应用。尽量减少操作次数。解析第题第题京东快手周一算法题之两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 引言 半年时间,几千人参与,精选大厂前端面试高频 100 题,这就是「壹题」。 在 2019 年 1 月 21 日这天,「壹题」项目正式开始,在这之后每个工...
阅读 3648·2021-10-18 13:34
阅读 2353·2021-08-11 11:15
阅读 1113·2019-08-30 15:44
阅读 656·2019-08-26 10:32
阅读 956·2019-08-26 10:13
阅读 2035·2019-08-23 18:36
阅读 1733·2019-08-23 18:35
阅读 492·2019-08-23 17:10