JavaScript,检查嵌套对象属性是否为空/未定义的优雅方法
2022-08-30 04:37:46
我不时遇到的一个“问题”是我有一个对象,例如 通过使用应用程序的过程,这被填充。让我们说 somwhere,在 AJAX 调用或我这样做之后:user = {}
user.loc = {
lat: 50,
long: 9
}
在另一个地方,我想检查是否存在。user.loc.lat
if (user.loc.lat) {
// do something
}
如果它不存在,这将导致错误。如果 是 ,当然也是。user.loc.lat
undefined
user.loc
undefined
"Cannot read property 'lat' of null" - Dev Tools error
这意味着我需要像这样检查它:
if (user.loc) {
if (user.loc.lat) {
// do something
}
}
或
if (user.loc && user.loc.lat) {
// do something
}
这并不漂亮,我的对象越大,它就越糟糕 - 显然(想象一下10级嵌套)。这让我很生气,如果也是,那不仅仅是回来。if(user.loc.lat)
false
user.loc
undefined
检查此类情况的理想方法是什么?