javascript - 匹配嵌套对象 JS、jQuery 中的值的最佳方法

标签 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 循环实现。但这是完成这项工作最有效的方法吗?

希望这是清楚的,感谢您的帮助!

最佳答案

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

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/

相关文章:

javascript - HTML 按钮,单击按钮时切换并切换所有其他按钮(折叠信息)

javascript - 我可以使用 JavaScript 仅上传所选文件的一部分吗?

java - 查找二维数组的可能组合

c++ - 在 C++ 中动态增长数组

javascript - 在 Angular.js 中使用 cookies 填充选择的依赖下拉列表

php - 只有 php 没有 javascript

javascript - 使用对象中的值填充嵌套名称的输入

javascript - 带触摸功能的 slider

javascript - 如何使用 glyphicon 上传图像而不是使用那个长输入字段?

C++ 组合 2 个数组,数据有序