如何判断一个有可能不存在的对象的值是否存在

比如我要将变量imagesList = $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh.memsImages。但不确定这中间哪个环节的对象是否存在除了一下这种笨拙的写法外,还有其他的解决办法吗?我试了typeof是不行的……

imagesList = $rootScope.chargeAccount &&
                $rootScope.chargeAccount.resultData &&
                    $rootScope.chargeAccount.resultData.resultForm &&
                        $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh &&
                            $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh.memsImages ?
                                $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh.memsImages : [];
阅读 3.7k
3 个回答
try {
    imagesList = $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh.memsImages || [];
} catch (e) {
    imagesList = [];
}

说错了,js跟lua一样的。

题主,请新建一个scope吧......,这种代码99%是可以避免的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题