资讯专栏INFORMATION COLUMN

前端题目--在未知对象中找出特定的目标

kumfo / 2745人阅读

摘要:注意该题目摘录自。题目描述写一个方法,在一个未知对象中,找出所有的李鹏并对象输出它的引用地址,以及对应值。例如下面的一个对象百度李鹏李鹏解法这个题目考察的是应该是递归和中对的理解,以及对的应用。利用循环遍历对象。

注意:该题目摘录自: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

相关文章

  • 解剖排序算法

    摘要:前言排序是计算机中对存储的数据执行最常见的操作之一。在排序算法中绕不开的是循环,只有在深入学习排序算法时,才发现平时不起眼的循环语句不可小觑。在排序算法中,还有一点需要注意的,那就是数组。 前言 排序是计算机中对存储的数据执行最常见的操作之一。语法简单,却很精妙。在排序算法中绕不开的是循环,只有在深入学习排序算法时,才发现平时不起眼的循环语句不可小觑。 拿最简单的冒泡排序来说,道理我都...

    Jiavan 评论0 收藏0
  • LeetCode 攻略 - 2019 年 7 月上半月汇总(55 题攻略)

    摘要:微信公众号记录截图记录截图目前关于这块算法与数据结构的安排前。已攻略返回目录目前已攻略篇文章。会根据题解以及留言内容,进行补充,并添加上提供题解的小伙伴的昵称和地址。本许可协议授权之外的使用权限可以从处获得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目录 不...

    warmcheng 评论0 收藏0
  • LeetCode 攻略 - 2019 年 8 月上半月汇总(109 题攻略)

    摘要:每天会折腾一道及以上题目,并将其解题思路记录成文章,发布到和微信公众号上。三汇总返回目录在月日月日这半个月中,做了汇总了数组知识点。或者拉到本文最下面,添加的微信等会根据题解以及留言内容,进行补充,并添加上提供题解的小伙伴的昵称和地址。 LeetCode 汇总 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...

    tracy 评论0 收藏0
  • 前端 100 问:能搞懂80%请把简历给我

    摘要:解析第题第题为什么的和的中不能做异步操作解析第题第题京东下面代码中在什么情况下会打印解析第题第题介绍下及其应用。尽量减少操作次数。解析第题第题京东快手周一算法题之两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 引言 半年时间,几千人参与,精选大厂前端面试高频 100 题,这就是「壹题」。 在 2019 年 1 月 21 日这天,「壹题」项目正式开始,在这之后每个工...

    Scott 评论0 收藏0

发表评论

0条评论

kumfo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<