0

假设我有一个 Javascript 数组,并且一些条目定义如下:

arr["rrr"]=1;
arr["ee"]=2;
arr["qqq"]=22;
...

假设有人尝试检索一个不存在的键的条目,例如:

var retr = arr["ppp"];

retrvar的状态是什么?是它null还是undefined别的什么?如何检查数组是否不包含所提供密钥的有效条目?Javascript 中的正确测试是什么?谢谢。

4

4 回答 4

2

结果未定义。要测试你只需要这样做:

if ("ppp" in arr) {
  // do something
} else {
 // do something else
}
于 2013-03-03T12:33:31.470 回答
1

缺少键返回的值是undefined。您可以像这样测试密钥是否存在:

var a = [];
a.hasOwnProperty('k'); // false
于 2013-03-03T12:38:05.413 回答
0

未定义数组键的返回值为undefined。正确的测试是

var retr = arr["ppp"];
if(retr!=undefined){
  //retr has some value
}
else{
  //retr is undefined
}
于 2013-03-03T12:30:27.607 回答
-1

我尝试了您在 Firebug 中编写的代码。当我尝试访问不存在密钥的条目时

var retr=arr["ppp"];

它返回空值。因此,retr 等于 null。

retr==null; //true
typeof retr=="undefined"; //true
于 2013-03-03T12:33:23.683 回答