Reactjs 检查对象中的URL,并返回最近的同级

Reactjs 检查对象中的URL,并返回最近的同级,reactjs,gatsby,react-context,Reactjs,Gatsby,React Context,我有一个API,它将抛出几十个对象,每个对象都包含一个promo\u url和一个promo\u编号,以便在我的Gatsby站点上进行动态数字交换。像这样: [{ "promo_url": "/promo1", "promo_number": "665-894-3142" }, { "promo_url": "/promo2", &qu

我有一个API,它将抛出几十个对象,每个对象都包含一个
promo\u url
和一个
promo\u编号
,以便在我的Gatsby站点上进行动态数字交换。像这样:

 [{
    "promo_url": "/promo1",
    "promo_number": "665-894-3142"
  },
  {
    "promo_url": "/promo2",
    "promo_number": "493-441-7386"
  },
  {
    "promo_url": "/promo3",
    "promo_number": "549-823-5785"
  },
  {
    "promo_url": "/promo4",
    "promo_number": "553-747-1261"
  },
  {
    "promo_url": "/promo5",
    "promo_number": "253-741-2776"
  }]

本质上,我需要做的是找到并设置用户的
参考
URL,检查数据,找到与之匹配的URL,然后通过上下文将相关电话号码传递给我的组件,但是我不知道如何检查对象,找到匹配的URL,然后传递相关电话号码。有人知道我应该从哪里开始吗?

您可以在这里使用reduce函数返回促销编号。非常擅长获取数据并简化数据。在这里,我只是像一个过滤器一样对它进行迭代,但reduce的酷之处在于,您可以看到返回的默认值,我发现它有时更可读

const apiResults = [
  {
   "promo_url": "/promo1",
    "promo_number": "665-894-3142"
  },
  {
    "promo_url": "/promo2",
    "promo_number": "493-441-7386"
  },
  {
    "promo_url": "/promo3",
    "promo_number": "549-823-5785"
  },
  {
    "promo_url": "/promo4",
    "promo_number": "553-747-1261"
  },
  {
    "promo_url": "/promo5",
    "promo_number": "253-741-2776"
  }
]
const referralUrl = "/promo5"

const promoNumber = apiResults.reduce((promoNumber, result) => {
  const IS_USER_PROMO = referralUrl === results.promo_url
  if(IS_USER_PROMO) {
    return result.promo_number
  }
  return promoNumber
}, "")

这回答了你的问题吗?