javascript - 访问数组中的值而不抛出错误
问题描述
我对 React 开发比较陌生。我有一个快速的问题。如果我有这样的对象:
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
我知道我可以通过说 person['firstName'] 来访问 John 的值。但是,如果我们不知道 firstName 会在那里。如果它在那里,我们如何尝试访问它而不抛出错误。
我知道我们可以使用 try 和 excepts,但我计划拥有 20-30 个这样的对象,所以我认为拥有这么多的 try 和 except 结构并不明智。有没有更简单的方法来做到这一点?
解决方案
您可以使用可选链接:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
const obj = {
name: "foo",
job: {
name: "doo",
company: "boo",
}
}
obj.name //foo
obj?.name //foo
obj.notExists //undefined
obj.notExists.somethingElse //ERROR
obj?.notExists?.somethingElse //undefined
obj?.notExists?.somethingElse?.map() //will not execute map, or any other method, if property does not exists
用[]
符号来使用它是这样的:
obj?.["name"]?.["anything"]
附言。请注意,这是一个 ES6 特性(或更高版本,不确定),因此如果没有“编译器”,使用起来是不安全的(如果你使用 react 是安全的)
推荐阅读
- java - 使用 servlet 启用禁用字段集
- xamarin - ReceivedRemoteNotification 和 DidReceiveRemoteNotification 永远不会被调用
- kubernetes - 在 kubernetes 中,POD 内的容器是否有自己的 IP 地址?
- javascript - 如何使用固定的引导导航栏显示不同的引导页面
- php - Laravel 比较数据透视表中的两个属性
- c# - 为什么 C# 发布版本包含调试信息
- git - 如何使用 SSH 添加 git 子模块并在一行中输入密码?
- jquery - 如何让 cookieConsent 导航在移动设备上自动扩展?
- memory-management - Gunicorn 增加内存 RAM
- python - 样品划分和楼层划分有什么区别?Python