我有一个类似于这个问题的情况:JavaScript检查对象属性是否存在,即使对象未定义。
我的问题是,如果您有一系列的属性,会发生什么。例如:
var obj = {'a': {'b': {'c': {'d': 'I exists'}}}}
我需要检查变量'd'是否已定义。为了避免出现错误,我需要这样检查:
if (typeof obj != 'undefined' && typeof obj['a'] != 'undefined' && typeof obj['a']['b'] != 'undefined' && typeof obj['a']['b']['c'] != 'undefined' && typeof obj['a']['b']['c']['d'] != 'undefined')
您可以看到这可能会让人感到困扰。例如,将其推展到嵌套层数为999的元素。有没有什么方法可以摆脱前n-1个条件?
obj.a.b.c.d !== 'undefined'
语句放在一个try ... catch
块中。就像这个例子一样。 - Phylogenesis