Rad*_*ity 2 javascript ecmascript-5 ecmascript-6
我从 API 调用收到一个对象。我想检查:
假设我期待以下对象:
success.response.data.users.items.list
Run Code Online (Sandbox Code Playgroud)
现在我想知道这个list对象是否存在。
我试过了:
typeof success.response.data.users.items.list !== "undefined"
我得到的错误: TypeError: Cannot read property 'data' of undefined
success.hasOwnProperty("response.data.users.items.list")
这始终评估为 false,因为 hasOwnProperty 显然无法检查多级对象。
success.response.data.users.items.hasOwnProperty("list")
我得到的错误: TypeError: Cannot read property 'data' of undefined
有没有任何现代和快速的方法来检查这个?
success?.response?.data?.users?.items?.list || {}
Run Code Online (Sandbox Code Playgroud)
如果没有,您只需要在尝试访问子属性之前检查每个对象是否存在,或者使用带有默认值的 ES6 解构(尽管对于深度嵌套的对象非常棘手):
const { response: { data: { users: { items: { list = {} } = {} } = {} } = {} } = {} } = success || {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
864 次 |
| 最近记录: |