【发布时间】:2020-06-20 06:11:30
【问题描述】:
我从 API 调用中收到一个对象。我要检查:
- 如果对象存在
- 对象的属性是否有我要找的属性
假设我期待以下对象:
success.response.data.users.items.list
现在我想知道这个list 对象是否存在。
我试过了:
-
typeof success.response.data.users.items.list !== "undefined"我得到的错误:
TypeError: Cannot read property 'data' of undefined -
success.hasOwnProperty("response.data.users.items.list")这总是评估为假,因为
hasOwnProperty显然无法检查多级对象。 -
success.response.data.users.items.hasOwnProperty("list")我得到的错误:
TypeError: Cannot read property 'data' of undefined
是否有任何现代且快速的检查方法?
【问题讨论】:
-
lodash.get lodash.com/docs/4.17.15#get
-
既然有可用的语言功能,为什么还要使用 lodash?
-
问题的根源在于
success没有名为response的属性。正如威尔詹金斯在他的回答中所说,您需要检查链的所有先前级别。
标签: javascript ecmascript-6 ecmascript-5