Каков самый простой способ в CoffeeScript проверить, существует ли ключ в объекте?
110
Каков самый простой способ в CoffeeScript проверить, существует ли ключ в объекте?
key of obj
Это компилируется в JavaScript key in obj
. (CoffeeScript использует of
при обращении к ключам и in
при обращении к значениям массива: val in arr
проверяет, val
есть ли вход arr
.)
Ответ thejh правильный, если вы хотите игнорировать прототип объекта. Ответ Джимми правильный, если вы хотите игнорировать ключи со значением null
или undefined
.
own key of obj
тоже работает, чтобы дополнительно протестировать.hasOwnProperty()
. «скорее всего» исходит от того, что я не пробовал, но этот синтаксис работает в пониманиях.own = (prop, obj) -> Object::hasOwnProperty.call obj, prop
'?' оператор проверяет наличие:
источник
null
.obj.key?
это, вероятно, самый краткий.(игнорировать унаследованные свойства)
источник
key of obj
что выдает ошибку, если значение является строкой или числом.Cannot use 'in' operator to search
. В этом случае, если объект не является неопределенным и не нулевым, он будет работать.