簡體   English   中英

使用jQuery循環遍歷嵌套對象

[英]Loop through nested objects with jQuery

嘿大家我正在嘗試找到循環數組最有活力的方法並返回特定值返回特定值... json結構深刻且可能會更改,是否有可以幫助的$ .each()公式?

例:

var myobj = {
    obj1: { key1: 'val1', key2: 'val2' },
    obj2: { key1: '2val1', 
           key2: { nest1: 'val1', nest2: 'val2', nest3: 'val3' }, 
           key3: { nest1: 'K3val1', nest2: 'K3val2', 
                 nest3: [
                         { nest1: 'val1', nest2: 'val2', nest3: 'val3' }, 
                         { nest1: 'val1', nest2: 'val2', nest3: 'val3' }
                        ]
                 }
          },
    obj3: { key1: 'dddddval1', key2: 'val2' }
    }

現在讓我說我想要檢索“ K3val2 ”值,而不是像這樣硬編碼: myobj.obj2.key3.nest2有一個動態的方式我用$.each() mybe做這個嗎?

您可以簡單地將調用嵌套到$.each

實例 | 直播源

// Loop the top level
$.each(myobj, walker);

function walker(key, value) {
    // ...do what you like with `key` and `value`

    if (value !== null && typeof value === "object") {
        // Recurse into children
        $.each(value, walker);
    }
}

如果你想知道自己有多深,你也可以這樣做:

實例 | 直播源

var path = "";

// Loop the top level
$.each(myobj, walker);

function walker(key, value) {
    var savepath = path;

    path = path ? (path + "." + key) : key;

    // ...do what you like with `key` and `value`

    if (value !== null && typeof value === "object") {
        // Recurse into children
        $.each(value, walker);
    }

    path = savepath;
}

暫無
暫無

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

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