如何动态访问JSON对象的属性

qod*_*nja 1 arrays search jquery json key

我有一个两级JSON对象

EX:

  var regexDefs = { 

      "alpha": {
          "regex"  : /^[A-Z]+$/,
          "errMsg" : "Alpha Only" }
      }
Run Code Online (Sandbox Code Playgroud)

我想做一些类似于在数组中搜索密钥的东西.

(使用jQuery的inArray)

var key = "alpha";
alert($.inArray(key,regexDefs));
Run Code Online (Sandbox Code Playgroud)

如果密钥在数组中,那么我想做

if(regexDefs[key].regex.test){ return true; }
Run Code Online (Sandbox Code Playgroud)

我知道可能有一些我想要的时髦,因为这是一个不是数组的对象......

$.inArray(key,regexDefs)
Run Code Online (Sandbox Code Playgroud)

返回undefined

= /

有什么想法吗?

And*_*y E 6

最准确的方法是

if ("alpha" in regexDefs)
{
}
Run Code Online (Sandbox Code Playgroud)

即使这将评估真正的alpha是一个falsey值,例如0,null,NaN,false,等.

您可以对变量执行相同的操作:

var key = "alpha";
if (key in regexDefs)
{
}
Run Code Online (Sandbox Code Playgroud)