我有一个以对象作为键的字典。如何检查字典中是否有特定对象?
答案 0 :(得分:19)
hasOwnProperty将不起作用。
如果键在字典中,但是值为null,则检查该值是否为空。
'in'运算符似乎一直都在运行。
var d:Dictionary = new Dictionary();
var a:Object = new Object();
d[a] = 'foo';
var b:Object = new Object();
d[b] = null;
var c:Object = new Object();
trace(a in d);
trace(b in d);
trace(c in d);
返回
true
true
false
我认为这是一个比上面发布的更“正确”的答案。
答案 1 :(得分:4)
您可以使用数组语法并查看值是否为null,
assertTrue(myDict["key"] == null)
如果允许空值,请使用hasOwnProperty方法。
assertTrue(myDict.hasOwnProperty("key")==true)
Adobe,为什么你没有keyExists()函数?
答案 2 :(得分:3)
var b:Dictionary = new Dictionary();
if(b[key] != null) {
}
答案 3 :(得分:3)
最恰当的方法是将返回值与undefined
进行比较:
if (dict["key"] !== undefined)
{
// do code when value does exist
}
作为具有null
关联值的键可以存在于字典中。
Here是一篇很好的文章,解释了这个主题。
答案 4 :(得分:1)
您可以使用in
检查现有密钥:
if ('key' in dict)
{
// do something
}
它也适用于对象键:
if (obj in dict)
{
// do something
}
请注意,“obj”必须是现有对象(已定义或未定义),否则将无法编译。