如何检查对象及其属性是否存在?

How to check if Object and its properties exist?

我从 API 电话中收到一个对象。我要检查:

  1. 如果对象存在
  2. 对象的属性是否有我要找的属性

假设我期待以下对象:

success.response.data.users.items.list

现在我想知道这个list对象是否存在。

我试过:

是否有任何现代且快速的检查方法?

如果您可以选择,optional chaining 是您的选择:

success?.response?.data?.users?.items?.list || {} 

如果不是,您只需在尝试访问子对象之前检查每个对象是否存在 属性,或者使用带有默认值的 ES6 解构(尽管对于深层嵌套的对象来说相当粗糙):

const { response: { data: { users: { items: { list = {} } = {} } = {} } = {} } = {} } = success || {}

如果可选链接不是一个选项,您可以使用这些行中的内容:

success && success.response && success.response.data && 
success.response.data.users && success.response.data.users.items && success.response.data.users.items.list