首页 > 解决方案 > 访问数组中的值而不抛出错误

问题描述

我对 React 开发比较陌生。我有一个快速的问题。如果我有这样的对象:

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

我知道我可以通过说 person['firstName'] 来访问 John 的值。但是,如果我们不知道 firstName 会在那里。如果它在那里,我们如何尝试访问它而不抛出错误。

我知道我们可以使用 try 和 excepts,但我计划拥有 20-30 个这样的对象,所以我认为拥有这么多的 try 和 except 结构并不明智。有没有更简单的方法来做到这一点?

标签: javascriptarraysreactjs

解决方案


您可以使用可选链接: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 是安全的)


推荐阅读