更短的方法: if (a !== undefined && ab !== undefined && abc === 'foo')

Hed*_*dge 1 javascript object lodash

如果我需要检查对象的属性,以及它的对象(等等),但首先无法确定该对象是否存在,如何使条件比这更简单?

if (a !== undefined && a.b !== undefined && a.b.c === 'foo')
Run Code Online (Sandbox Code Playgroud)

如果LoDash有任何有意义的功能,我也会使用它。

VeX*_*Xii 5

如果您知道它a在当前范围内(例如作为参数进入),您可以这样做
if(a && a.b && a.b.c === 'foo')
,但如果从未定义过机会,a则必须检查类型,例如:
if( typeof a != 'undefined' && a.b && a.b.c === 'foo')


使用 lodah 时更新has该函数可以提供更好的语法(与该get函数不同,如果属性是假值,则返回 true。感谢@ryeballar): if(lodash.has(a,'b.c')){ console.log(a.b.c); }

  • 当“a”不存在时,“if(a && ab && abc === 'foo')”将抛出错误。 (2认同)