Мне нужно проверить, существует ли в объекте несколько конкретных свойств. И для этого у меня есть два вопроса:javascript: проверьте наличие нескольких специфических свойств объекта (также в coffeescript)
- Как я обычно должен проверять наличие нескольких существующих свойств в JavaScript?
- Есть ли ярлык в CoffeeScript, чтобы сделать это элегантным способом?
Мой Javascript решение будет:
if(obj && obj.pOne && obj.pTwo && obj.pThree) doStuff();
В кофе сценарий, который не будет короче:
if obj and obj.pOne and obj.pTwo and obj.pThree then doStuff()
Не стоит ввести в заблуждение здесь, это не будет работать:
И затем я столкнулся с оператором
in
, если предложения (которые я никогда не используется для таких проверок). Это правильный способ сделать то, что я хочу достичь? Или это что-то вроде не-go, или есть лучшее/более чистое решение?
Мой код будет выглядеть следующим образом:
if(obj && ('pOne' && 'pTwo' && 'pThree' in obj)) doStuff();
и CoffeeScript так:
if obj and ('pOne' and 'pTwo' and 'pThree' of obj) then doStuff()
!!! НЕ КОПИРОВАТЬ Мое второе предложение ИСПОЛЬЗОВАТЬ ОПЕРАТОР 'in' ВМЕСТЕ С' && 'КОНКАТЕНЦИЯ !!! Я только что нашел вышеупомянутое решение с 'in' совсем не делает того, чего я хочу достичь! Он проверяет только последнее свойство, так как это результат '&&' concatenation. Я должен был это знать ... Кажется, я должен придерживаться первого решения, не так ли? – Dominic