在 JavaScript 中,是否有一种简单的方法来 native 确定对象中是否存在深层属性?例如,我需要访问这样的属性:
var myVal = appData.foo.bar.setting;
但是有可能还没有定义 foo、foo.bar 或 foo.bar.setting。在 Groovy 中,我们可以这样做:
def myVal = appData?.foo?.bar?.setting
在 JavaScript 中是否有类似的方法来执行此操作,而无需编写自定义函数或嵌套 if 语句?我找到了 this answer很有用,但希望有一种更优雅、更少定制的方式。
最佳答案
我觉得这很方便:
var myVal = (myVal=appData) && (myVal=myVal.foo) && (myVal=myVal.bar) && myVal.settings;
如果属性存在,将尝试序列的下一部分。
当 &&
之前的表达式计算结果为 false 时,表达式的下一部分将不会被检查。如果未定义 myVal.appData.foo.bar.settings
中的任何一个,则 myVal
的值(undefined
(将评估为 假的
。
关于javascript - 在 JavaScript 中,是否有更简单的方法来检查属性的属性是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7636789/