摘要:注意該題目摘錄自。題目描述寫一個方法,在一個未知對象中,找出所有的李鵬并對象輸出它的引用地址,以及對應值。例如下面的一個對象百度李鵬李鵬解法這個題目考察的是應該是遞歸和中對的理解,以及對的應用。利用循環遍歷對象。
注意:該題目摘錄自: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中走過的路徑 一個一個剔除出去。想要明白這個思路,正確理解遞歸是前提。真心希望這個題目能夠幫助到您。不足之處,還請大家指出。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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 日這天,「壹題」項目正式開始,在這之后每個工...
閱讀 3708·2021-10-18 13:34
閱讀 2396·2021-08-11 11:15
閱讀 1201·2019-08-30 15:44
閱讀 687·2019-08-26 10:32
閱讀 986·2019-08-26 10:13
閱讀 2065·2019-08-23 18:36
閱讀 1775·2019-08-23 18:35
閱讀 523·2019-08-23 17:10