Gus*_*epo 27 javascript arrays isset
我有一个阵列
var assoc_pagine = new Array();
assoc_pagine["home"]=0;
assoc_pagine["about"]=1;
assoc_pagine["work"]=2;
Run Code Online (Sandbox Code Playgroud)
我试过了
if (assoc_pagine[var] != "undefined") {
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用
我正在使用jquery,我不知道它是否可以提供帮助
谢谢
Ste*_*fan 54
使用in关键字测试是否在对象中定义了属性
if (assoc_var in assoc_pagine)
Run Code Online (Sandbox Code Playgroud)
要么
if ("home" in assoc_pagine)
Run Code Online (Sandbox Code Playgroud)
这里有很多问题.
首先,var假设一个变量具有"home","work"或"about"的值?或者你的意思是检查称为"var"的实际属性?
如果var应该是一个具有字符串值的变量,请注意这var是JavaScript中的保留字,您需要使用其他名称,例如assoc_var.
var assoc_var = "home";
assoc_pagine[assoc_var] // equals 0 in your example
Run Code Online (Sandbox Code Playgroud)
如果您打算检查名为"var"的属性,那么您只需将其放在引号内.
assoc_pagine["var"]
Run Code Online (Sandbox Code Playgroud)
然后,undefined是不一样的"undefined".您需要typeof获取对象类型的字符串表示形式.
这是所有步骤的细分.
var assoc_var = "home";
var value = assoc_pagine[assoc_var]; // 0
var typeofValue = typeof value; // "number"
Run Code Online (Sandbox Code Playgroud)
所以要解决你的问题
if (typeof assoc_pagine[assoc_var] != "undefined")
Run Code Online (Sandbox Code Playgroud)
更新:正如其他答案所示,使用数组不是解决此问题的最佳方法.请考虑使用Object.
var assoc_pagine = new Object();
assoc_pagine["home"]=0;
assoc_pagine["about"]=1;
assoc_pagine["work"]=2;
Run Code Online (Sandbox Code Playgroud)
bob*_*nce 14
var assoc_pagine = new Array();
assoc_pagine["home"]=0;
Run Code Online (Sandbox Code Playgroud)
不要使用Array这个.数组用于数字索引列表.只需使用plain Object({}).
您对'undefined'字符串的想法可能是这样的:
if (typeof assoc_pagine[key]!=='undefined')
Run Code Online (Sandbox Code Playgroud)
这(或多或少)与说法相同
if (assoc_pagine[key]!==undefined)
Run Code Online (Sandbox Code Playgroud)
但是,无论哪种方式,这都有点难看.你解引用可能不存在一个键(这将是任何更明智的语言错误),并依托JavaScript的给予你的特殊怪异的黑客undefined为不存在的属性值.
这也不能告诉你属性是否真的不存在,或者它是否存在但是明确地设置为该undefined值.
这是一个更明确,可读和IMO全面更好的方法:
if (key in assoc_pagine)
Run Code Online (Sandbox Code Playgroud)
var是一个声明...所以它是一个保留字......所以只需用另一种方式调用它.这是一种更好的方法(===优于==)
if(typeof array[name] !== 'undefined') {
alert("Has var");
} else {
alert("Doesn't have var");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89237 次 |
| 最近记录: |