有没有一种简单的方法可以本地确定 JavaScript 对象中是否存在深层属性?例如,我需要访问这样的属性:
var myVal = appData.foo.bar.setting;
但 foo、foo.bar 或 foo.bar.setting 可能尚未定义。在 Groovy 中,我们可以这样做:
def myVal = appData?.foo?.bar?.setting
在 JavaScript 中是否有类似的方法可以做到这一点,而无需编写自定义函数或嵌套 if 语句?我发现了这个答案 https://stackoverflow.com/questions/6571551/shorthand-function-for-checking-whether-a-property-exists有用,但希望有一种更优雅、更少定制的方式。
我觉得这很方便:
var myVal = (myVal=appData) && (myVal=myVal.foo) && (myVal=myVal.bar) && myVal.settings;
如果属性存在,则将尝试序列的下一部分。
当前面的表达式&&
计算结果为 false,则不会检查表达式的下一部分。如果其中任何一个myVal.appData.foo.bar.settings
没有定义,其值myVal
(undefined
(将评估为false
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)