如何检查 Javascript 对象是否具有给定键的值?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/10822971/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 03:04:41  来源:igfitidea点击:

How to check whether a Javascript object has a value for a given key?

javascriptdictionarykey

提问by Jér?me Verstrynge

Possible Duplicate:
How do I check to see if an object has an attribute in Javascript?

可能的重复:
如何检查对象是否在 Javascript 中具有属性?

I have a Javascript object defined as following:

我有一个 Javascript 对象定义如下:

var mmap = new Object();

mmap['Q'] = 1;
mmap['Z'] = 0;
mmap['L'] = 7;
...

How to check whether this map has a value for a given key (for example 'X')? Does .hasOwnProperty()get into play?

如何检查此映射是否具有给定键的值(例如“X”)?是否.hasOwnProperty()进入游戏?

回答by Kendall Frey

if ('X' in mmap)
{
    // ...
}

Hereis an example on JSFiddle.

是一个关于 JSFiddle 的例子。

hasOwnPropertyis also valid, but using inis much more painless. The only difference is that inreturns prototype properties, whereas hasOwnPropertydoes not.

hasOwnProperty也是有效的,但使用in起来更轻松。唯一的区别是in返回原型属性,而hasOwnProperty不会。

回答by Mike Christensen

You can use:

您可以使用:

(mmap['X'] === undefined)

Fiddle: http://jsfiddle.net/eDTrY/

小提琴:http: //jsfiddle.net/eDTrY/