簡體   English   中英

無法理解嵌套javascript對象中的遞歸行為

[英]Not able to understand recursive behaviour in nested javascript object

我試圖理解遞歸如何使用嵌套的js對象,它可能具有相同的鍵名。 例如,在下面的對象中,嵌套中的鍵是相同的。 因此,當我循環時,我期待obj[keys]將始終轉到第一行(標記為//第1行)。

我試圖理解如果所有鍵具有相同的名稱,js將如何知道考慮循環哪個嵌套。 不確定我在理解方面出錯了

 var obj = { a: { // Line 1 a: { // Line 2 a: { // Line 3 sweptArea: 5 } } } } function loop(obj, keyName) { for (var keys in obj) { if (obj.hasOwnProperty(keys) && typeof obj[keys] === 'object') { if (obj[keys][keyName] !== undefined) { console.log(obj[keys][keyName]) } else { // In my understanding in all the iteration it will point to obj.a marked as line one loop(obj[keys], 'sweptArea') } } } } loop(obj, 'sweptArea') 

當你說obj[keys]只在obj上查找那個名字的鍵時。 該表達式本身不會遞歸。

每次調用函數時,傳遞給定義到obj參數的變量的值都不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM