在此查詢中,使用者尋求一種機制來遞歸地迭代物件、其子層級及其後代。此外,他們希望檢索每個遇到的節點的名稱。
解決方案在於 JavaScript for...in 迴圈。此循環迭代物件的可枚舉屬性。它可以如下使用:
<code class="javascript">for (var key in foo) { if (key === "child") { // Perform an action specific to the "child" node } }</code>
請注意,for...in 迴圈可以迭代物件自己的屬性和繼承的屬性。為了避免對繼承的屬性進行操作,請使用 hasOwnProperty 方法:
<code class="javascript">for (var key in foo) { if (!foo.hasOwnProperty(key)) { continue; // Skip inherited properties } if (key === "child") { // Perform an action specific to the "child" node } }</code>
要遞歸地執行迭代,可以使用遞歸函數:
<code class="javascript">function eachRecursive(obj) { for (var k in obj) { if (typeof obj[k] === "object" && obj[k] !== null) { eachRecursive(obj[k]); // Recurse through the nested node } else { // Perform an action specific to the non-object node } } }</code>
以上是如何在 JavaScript 中遞歸迭代嵌套對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!