开发者

Best way to match values in nested objects JS, jQuery

Ok I have a big JS object that contains data I need within 3 tiers:

o开发者_运维问答b = {
  x1:{
    y11:{a:foo,b:bah},
    y22:{a:foo,b:bah},
    y33:{a:foo,b:bah}
  }
  x2:{
    y11:{a:foo,b:bah},
    y22:{a:foo,b:bah},
    y33:{a:foo,b:bah}
  } 
  x3:{
    y11:{a:foo,b:bah},
    y22:{a:foo,b:bah},
    y33:{a:foo,b:bah}
  }
}

I also have an array of values:

var array = [foo,bah,foo,bah];

I need to check if the values in this array match any of the values at the third tier of my big JS object and pull out some sibling values that i require. I understand this is possible with 3 nested $.each loops. But is that the most efficient way to do this job?

Hope this is clear, appreciate the help!


You need three nested loops to do this. No way around.

for(var level1 in ob) {
    for(var entry in level1) {
        for(var value in entry) {
            if( $.inArray(entry[value], array) > -1 ) {
                // match
            }
        }
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜