使用CoffeeScript检查对象中是否存在密钥的最简单方法

时间:2011-11-23 13:29:11

标签: javascript coffeescript

在CoffeeScript中,检查对象中是否存在密钥的最简单方法是什么?

3 个答案:

答案 0 :(得分:181)

key of obj

这将编译为JavaScript的key in obj。 (CoffeeScript在引用键时使用of,在引用数组值时使用inval in arr将测试val是否在arr中。)

如果你想忽略对象的原型,那么你的答案是正确的。如果您想忽略nullundefined值的密钥,Jimmy的答案是正确的。

答案 1 :(得分:34)

'?'操作员检查存在:

if obj?
    # object is not undefined or null

if obj.key?
    # obj.key is not undefined or null

# call function if it exists
obj.funcKey?()

# chain existence checks, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?.grandChildKey

# chain existence checks with function, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?().grandChildKey

答案 2 :(得分:20)

obj.hasOwnProperty(name)

(忽略继承的属性)