」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何遞歸建構複雜物件的分層屬性清單?

如何遞歸建構複雜物件的分層屬性清單?

發佈於2024-11-02
瀏覽:312

How can I recursively construct a hierarchical property list of a complex object?

遞歸屬性列表構造

要遍歷複雜物件並提取其屬性的分層列表,請考慮使用遞歸函數。這種技術有效地捕捉了物件結構內的嵌套關係。

我們的範例物件及其嵌套屬性就是一個很好的例子:

var object = {
    aProperty: {
        aSetting1: 1,
        aSetting2: 2,
        aSetting3: 3,
        aSetting4: 4,
        aSetting5: 5
    },
    bProperty: {
        bSetting1: {
            bPropertySubSetting : true
        },
        bSetting2: "bString"
    },
    cProperty: {
        cSetting: "cString"
    }
}

要分層建構所需的屬性鍵列表,我們可以使用以下遞歸函數:

function iterate(obj, stack) {
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            if (typeof obj[property] == "object") {
                iterate(obj[property], stack   '.'   property);
            } else {
                console.log(property   "   "   obj[property]);
                $('#output').append($("
").text(stack '.' property)) } } } } iterate(object, '')

此函數以遞歸方式運行,從初始物件和空堆疊開始。當它探索物件時,它會建構代表每個屬性的分層路徑的堆疊字串。

  • 對於基本型別屬性,此函數記錄屬性鍵及其值。
  • 對於巢狀對象,函數遞歸呼叫自身,傳入巢狀物件並將屬性鍵附加到堆疊字串中。

結果是屬性鍵列表,捕獲原始物件的層次結構.

該解決方案有效地將遞歸與屬性迭代集成在一起,提供了一種構建對象屬性分層列表的綜合方法。

版本聲明 本文轉載於:1729405459如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3