简单的javascript / json问题。
在我的代码中,我从一个来源中找到一个变量的值(我依次尝试每个变量,直到找到一个不是undefined
的变量)。其中一个来源是一个具有多个元素级别的json对象,并非所有元素都可以保证填充。
例如,假设我需要的数据位于options.levelA.levelB.levelC.dataThatINeed
。这些级别都不能保证设置,甚至包括选项变量本身。
为了避免运行时错误(尝试访问'undefined'的子元素),访问dataThatINeed
的唯一安全方法如下:
var data = (options && options.levelA && options.levelA.levelB && options.levelA.levelB.levelC && options.levelA.levelB.levelC.dataThatINeed) || 'default';
这似乎是一种非常不优雅的方式,并且错误(错别字等)的真正可能性会随着所有这些级别而下滑。我想知道是否有更好的做法可以采用。很遗憾,您无法直接访问options.levelA.levelB.levelC.dataThatINeed
,如果undefined
(或任何更高级别)dataThatINeed
,则返回undefined
,而不是可能会抛出错误。< / p>
感谢。