【问题标题】:How to check whether a Javascript object has a value for a given key? [duplicate]如何检查 Javascript 对象是否具有给定键的值? [复制]
【发布时间】:2012-06-05 01:59:20
【问题描述】:

可能重复:
How do I check to see if an object has an attribute in Javascript?

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

var mmap = new Object();

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

如何检查此映射是否具有给定键的值(例如'X')? .hasOwnProperty() 会起作用吗?

【问题讨论】:

  • 为什么不hasOwnProperty? (审美原因除外。)in 之间的区别在于 in 也将遍历 [[prototype]]。
  • mmap.has(key) 是最新的 ECMAScript 6 检查地图中键是否存在的方法。 Refer to this 了解完整详情。

标签: javascript dictionary key


【解决方案1】:
if ('X' in mmap)
{
    // ...
}

Here 是 JSFiddle 上的一个示例。

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

【讨论】:

  • 是的,你的方式可能比我的好看:)
【解决方案2】:

你可以使用:

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

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

【讨论】:

  • 但是,如果该属性设置为未定义,它仍然存在,但这将返回false。
  • {x: undefined}.x === undefined 是真的
  • 有效点,更何况有些白痴重新定义了undefined
猜你喜欢
  • 2021-09-05
  • 2010-10-02
  • 2017-01-09
  • 2019-12-15
  • 2018-03-08
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 2017-12-10
相关资源
最近更新 更多