好吧,我有一个大的 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 循环实现。但这是完成这项工作最有效的方法吗?
希望这是清楚的,感谢您的帮助!
最佳答案
您需要三个嵌套循环才能执行此操作。没有办法。
for(var level1 in ob) {
for(var entry in level1) {
for(var value in entry) {
if( $.inArray(entry[value], array) > -1 ) {
// match
}
}
}
}
关于javascript - 匹配嵌套对象 JS、jQuery 中的值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4970618/