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

Jquery 如何动态访问JSON对象的属性,jquery,json,search,arrays,key,Jquery,Json,Search,Arrays,Key,我有一个两级JSON对象 EX: var regexDefs = { "alpha": { "regex": /^[A-Z]+$/, "errMsg": "Alpha Only" } } 我想做一些类似于在数组中搜索密钥的事情 (使用jQuery的inArray) 如果密钥在数组中,那么我要执行以下操作 if(regexDefs[key].regex.test){ return true; } 我知道我可能遗漏了一些奇怪的东西,因为这是一个对象而不是数组 做 返回未

我有一个两级JSON对象

EX:

var regexDefs = {

  "alpha": {
    "regex": /^[A-Z]+$/,
    "errMsg": "Alpha Only"
  }
}
我想做一些类似于在数组中搜索密钥的事情

(使用jQuery的inArray)

如果密钥在数组中,那么我要执行以下操作

if(regexDefs[key].regex.test){ return true; }
我知道我可能遗漏了一些奇怪的东西,因为这是一个对象而不是数组

返回未定义的

=/

有什么想法吗?

只要做:

if (regexDefs[key]) {
    // Present.
} else {
    // Not present.
}
要了解更多关于JSON的信息,我可以向您推荐。

只需执行以下操作:

if (regexDefs[key]) {
    // Present.
} else {
    // Not present.
}

要了解更多关于JSON的信息,我推荐您。

如果密钥存储在名为key的变量中,您可以使用以下内容:

if(regexDefs[key]) {
    // do your thing
}

如果密钥存储在名为key的变量中,则可以使用以下内容:

if(regexDefs[key]) {
    // do your thing
}

最准确的方法是

if ("alpha" in regexDefs)
{
}
即使
alpha
是一个假值,例如
0
null
NaN
false
等,这也将计算为true

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

var key = "alpha";
if (key in regexDefs)
{
}

最准确的方法是

if ("alpha" in regexDefs)
{
}
即使
alpha
是一个假值,例如
0
null
NaN
false
等,这也将计算为true

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

var key = "alpha";
if (key in regexDefs)
{
}

检查Andy E的答案是否更可靠:)倒数+1似乎是正确的,如果您确定
不会是错误的值,您的方法将同样优雅地工作:-)检查Andy E的答案是否更可靠:)倒数+1似乎是正确的,如果您确信
不会是错误的值,那么您的方法将同样优雅地工作:-)