在嵌套对象JS,jQuery中匹配值的最佳方法

时间:2011-02-11 15:11:21

标签: javascript jquery arrays object

好的我有一个很大的JS对象,其中包含我需要的3层内的数据:

ob = {
  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}
  }
}

我还有一系列值:

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

我需要检查这个数组中的值是否与我的大JS对象的第三层中的任何值匹配,并提取出我需要的一些兄弟值。我理解这可以使用3个嵌套的$ .each循环。但这是最有效的工作方式吗?

希望这很清楚,感谢帮助!

1 个答案:

答案 0 :(得分:2)

需要三个嵌套循环才能执行此操作。没办法。

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