摘要:注意該題目摘錄自。題目描述寫一個(gè)方法,在一個(gè)未知對(duì)象中,找出所有的李鵬并對(duì)象輸出它的引用地址,以及對(duì)應(yīng)值。例如下面的一個(gè)對(duì)象百度李鵬李鵬解法這個(gè)題目考察的是應(yīng)該是遞歸和中對(duì)的理解,以及對(duì)的應(yīng)用。利用循環(huán)遍歷對(duì)象。
注意:該題目摘錄自:https://juejin.im/post/58d088...。我這里稍微做了些修改。
題目描述
寫一個(gè)方法,在一個(gè)未知對(duì)象中,找出所有的“李鵬” 并 console.log 對(duì)象輸出它的引用地址,以及對(duì)應(yīng)值。例如下面的一個(gè)對(duì)象:
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" } } } } }
解法
這個(gè)題目考察的是應(yīng)該是遞歸和Js中對(duì)object的理解,以及對(duì)typeof的應(yīng)用。
我下面先貼出我自己的解法的核心代碼:
思路講解
(1)首先,我定義了兩個(gè)數(shù)組path和result。其中path用于記錄當(dāng)前的已經(jīng)走過的“路徑”,它是一個(gè)臨時(shí)變量;而result用于記錄全部符合要求的數(shù)據(jù)。
(2)利用for循環(huán)遍歷對(duì)象。需要注意的是,由于這是個(gè)未知“深度”的對(duì)象,所以我這里使用了遞歸。這樣就可以把所有的“元素”都遍歷一遍。明白了這個(gè)之后,下面的代碼就是判斷“元素”是否為‘object’。(我這里多一句嘴,關(guān)于typeof的用法,大家可以參考這里。)如果是object的話,那么就繼續(xù)遞歸調(diào)用我們的方法;如果不是object,那么我們就取出它的值并判斷是否符合我們的要求。如果符合,就把值添加到我們的result數(shù)組中。其實(shí),這個(gè)思路最最終的一點(diǎn)就是path.pop(),或許有人要問:這里有這一句的代碼有什么作用?下面我把調(diào)試信息貼出來,大家就能明白。
看了上圖,就能明白,這里是利用遞歸的特點(diǎn)將path中走過的路徑 一個(gè)一個(gè)剔除出去。想要明白這個(gè)思路,正確理解遞歸是前提。真心希望這個(gè)題目能夠幫助到您。不足之處,還請(qǐng)大家指出。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/98449.html
摘要:前言排序是計(jì)算機(jī)中對(duì)存儲(chǔ)的數(shù)據(jù)執(zhí)行最常見的操作之一。在排序算法中繞不開的是循環(huán),只有在深入學(xué)習(xí)排序算法時(shí),才發(fā)現(xiàn)平時(shí)不起眼的循環(huán)語句不可小覷。在排序算法中,還有一點(diǎn)需要注意的,那就是數(shù)組。 前言 排序是計(jì)算機(jī)中對(duì)存儲(chǔ)的數(shù)據(jù)執(zhí)行最常見的操作之一。語法簡(jiǎn)單,卻很精妙。在排序算法中繞不開的是循環(huán),只有在深入學(xué)習(xí)排序算法時(shí),才發(fā)現(xiàn)平時(shí)不起眼的循環(huán)語句不可小覷。 拿最簡(jiǎn)單的冒泡排序來說,道理我都...
摘要:微信公眾號(hào)記錄截圖記錄截圖目前關(guān)于這塊算法與數(shù)據(jù)結(jié)構(gòu)的安排前。已攻略返回目錄目前已攻略篇文章。會(huì)根據(jù)題解以及留言內(nèi)容,進(jìn)行補(bǔ)充,并添加上提供題解的小伙伴的昵稱和地址。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目錄 不...
摘要:每天會(huì)折騰一道及以上題目,并將其解題思路記錄成文章,發(fā)布到和微信公眾號(hào)上。三匯總返回目錄在月日月日這半個(gè)月中,做了匯總了數(shù)組知識(shí)點(diǎn)?;蛘呃奖疚淖钕旅?,添加的微信等會(huì)根據(jù)題解以及留言內(nèi)容,進(jìn)行補(bǔ)充,并添加上提供題解的小伙伴的昵稱和地址。 LeetCode 匯總 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...
摘要:解析第題第題為什么的和的中不能做異步操作解析第題第題京東下面代碼中在什么情況下會(huì)打印解析第題第題介紹下及其應(yīng)用。盡量減少操作次數(shù)。解析第題第題京東快手周一算法題之兩數(shù)之和給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個(gè)數(shù)。 引言 半年時(shí)間,幾千人參與,精選大廠前端面試高頻 100 題,這就是「壹題」。 在 2019 年 1 月 21 日這天,「壹題」項(xiàng)目正式開始,在這之后每個(gè)工...
閱讀 3783·2021-10-18 13:34
閱讀 2493·2021-08-11 11:15
閱讀 1302·2019-08-30 15:44
閱讀 783·2019-08-26 10:32
閱讀 1054·2019-08-26 10:13
閱讀 2132·2019-08-23 18:36
閱讀 1841·2019-08-23 18:35
閱讀 591·2019-08-23 17:10