在$ .map中选择嵌套对象

时间:2016-08-11 19:42:16

标签: jquery object nested mapping

如何在类似下面的代码中选择嵌套对象的键?

dominant = {
    "owner1":{
        "sub1":{
            "super_sub1":"Amy",
            "super_sub2":"Luara",
            "super_sub3":"Daria",
            "super_sub4":"Maria"
        },
        "sub2":{
            "extra_sub1":"Puppy",
            "extra_sub2":"Dog",
            "extra_sub3":"Wolf",
            "extra_sub4":"Pet"
        }
    },
    "owner2":{
        "sub1":{"super_sub1":"Issaballa"},
        "sub2":{"extra_sub1":"Puppy"}
    },
    "owner3":{
        "sub1":{
            "super_sub1":"Mary",
            "super_sub2":"Amy",
            "super_sub3":"Laura",
            "super_sub4":"Daria"
        },
        "sub2":{
            "extra_sub1":"Wolf",
            "extra_sub2":"Dog"
        }
    },
    "owner4":{
        "sub1":{
            "super_sub1":{"name":"Maria", "cords":[2,1,36,1,29,15,9,15]},
            "super_sub2":{"name":"Daria", "cords":[37,5,37,33,31,25,31,14]},
            "super_sub3":{"name":"Luara", "cords":[9,23,29,23,36,37,2,37]},
            "super_sub4":{"name":"Amy", "cords":[1,5,7,14,7,25,1,33]},
            "super_sub5":{"name":"Issaballa", "cords":[9,16,29,16,29,22,9,22]}
        },
        "sub2":{
            "extra_sub1":{"name":"Puppy", "cords":[2,1,36,1,27,8,11,8]},
            "extra_sub2":{"name":"Dog", "cords":[37,1,37,37,29,30,29,8]},
            "extra_sub3":{"name":"Wolf", "cords":[11,30,27,30,36,37,2,37]},
            "extra_sub4":{"name":"Pet", "cords":[1,1,9,8,9,30,1,37]},
            "extra_sub5":{"name":"BarkBark", "cords":[10,10,28,10,28,28,10,28]}
        }
    },
};
$.map(dominant, function(dom, domi){
    console.log("DOM:");console.log(dom);//equal to owners {}
    console.log("DOMI:");console.log(domi);//equal to owners
    return (
      "<div class='tt_sect "+tvi+"'></div>"
    );
}).join("")

我想在$ .map中的所有者对象(sub1&amp; sub2)中选择键。我该怎么做?我知道这不会太难。

1 个答案:

答案 0 :(得分:1)

到目前为止,我理解你的问题,你需要访问sub1和sub2,所以这里是方法,如果你只想做map

$.map(dominant, function(dom, domi){
    console.log("DOM:");console.log(dom);//equal to owners {}
    console.log("DOMI:");console.log(domi);//equal to owners
    $.map(dom, function(sub, subi){
        console.log("DOM:");console.log(sub);//equal to subs {}
        console.log("DOMI:");console.log(subi);//equal to subs    
    })       
     return ("<div class='tt_sect "+tvi+"'></div>");
}).join("")

或者如果你只想迭代sub1和sub2,你可以使用这个

  $.map(dominant, function(dom, domi){
        console.log("DOM:");console.log(dom);//equal to owners {}
        console.log("DOMI:");console.log(domi);//equal to owners
         $.each(sub, function() {
          console.log("DOM:");console.log(sub);//equal to subs {}           
        });                    
   return ("<div class='tt_sect "+tvi+"'></div>"     
    }).join("")