Javascript:检查可能不存在的数组中的键

时间:2015-07-09 20:42:44

标签: javascript

Say boundEvents是一个可能存在或可能不存在的数组。如果它不存在,则以下代码将返回'undefined':

console.log(typeof boundEvents);

精细。这正是我想要的。现在说我想检查理论数组是否存在可能存在或可能不存在的

console.log(typeof boundEvents['click']);

哦,哦:

Uncaught TypeError: Cannot read property 'click' of undefined

公平,javascript。因此,在检查密钥之前,让我们检查数组是否存在:

if(typeof boundEvents != 'undefined'){
    console.log(typeof boundEvents['click']);
}

再次工作,但我想知道是否有办法消除if语句并直接检查是否存在boundEvents['click']

谢谢!

编辑:完整答案,合并如下:

var boundEvents = boundEvents || {};   
console.log(boundEvents.hasOwnProperty('click'));

3 个答案:

答案 0 :(得分:2)

你可以这样做:

boundEvents = boundEvents || {};
console.log(boundEvents['click']);

或单行:

console.log((boundEvents || {})['click']);

答案 1 :(得分:1)

如果你想要一个明确的true / false,那么:

(boundEvents || {}).hasOwnProperty('click')

答案 2 :(得分:0)

您可以检查以您想要的变量结尾的每个图层。如果一切都是假的,这将默认为undefined。

( (typeof boundEvents !== "undefined") && boundEvents['click']) || undefined