Javascript 如何从具有大量依赖关系的api检索数据

Javascript 如何从具有大量依赖关系的api检索数据,javascript,reactjs,Javascript,Reactjs,所以,我在迭代api中需要的数据时遇到了一些问题。我有这样一个api: { "datatype": "text", "data": [ { "date": "09/08/09", "events": [ { "eventDate": "2017-08-05T00:00:00

所以,我在迭代api中需要的数据时遇到了一些问题。我有这样一个api:

{
  "datatype": "text",
  "data": [
    {
      "date": "09/08/09",
      "events": [
        {
          "eventDate": "2017-08-05T00:00:00.000",
          "dataValues": [
            {
              "displayName": "Name",
              "value": "Josh"
            },
            {
              "displayName": "Surname",
              "value": "Rashford"
            },
            {
              "dataElement": "Birth date",
              "value": "09/11/1999"
            }
          ]
        },
        {
          "eventDate": "2017-08-05T00:00:00.000",
          "dataValues": [
            {
              "displayName": "Name",
              "value": "Josh"
            },
            {
              "displayName": "Surname",
              "value": "Rashford"
            },
            {
              "dataElement": "Birth date",
              "value": "09/11/1999"
            }
          ]
        }
      ]
    }
  ]
}
我的代码

):(空((()())()())()40
}
DateName{ (state.data | |[]).map((data)=>( (data.events | |[]).map((详细信息)=>( (details.dataValues | |[]).map((value)=>( ((details.eventDate=='2017-08-05T00:00:00.000'))?(
{ 详细信息.eventDate }{ details.dataValues.filter(x=>x.displayName==='Name')[0].value }{ details.dataValues.filter(x=>x.displayName==='namname')[0]。value }

我从表中的api获得了数据,但迭代可能是错误的,每行重复4次。我认为有一个更好的方法来迭代api,但我没有成功地找到它,只有在减少映射时才会出错。如何在不重复的情况下获取表中的数据?

您需要将
[0].value
替换为
map(e=>e.value)
。这将转换数组中的每个值,而不是使用在
0
处索引的第一个值

以下是您需要的:


{
details.dataValues.filter(x=>x.displayName==='Name').map(e=>e.value)
}
{
details.dataValues.filter(x=>x.displayName===='name').map(e=>e.value)
}

您需要将
[0].value
替换为
map(e=>e.value)
。这将转换数组中的每个值,而不是使用在
0
处索引的第一个值

以下是您需要的:


{
details.dataValues.filter(x=>x.displayName==='Name').map(e=>e.value)
}
{
details.dataValues.filter(x=>x.displayName===='name').map(e=>e.value)
}

您的预期输出是什么?我想您对如何使用
map
函数感到困惑。我想在表中显示数据。我得到了数据,但每行重复4次,所以从上面的数据来看,你想只显示2行吗?是的,这就是我想要的输出查看我的预期输出是什么?我想您对如何使用
map
函数感到困惑。我想在表中显示数据。我得到了数据,但是每行重复4次,所以从上面的数据来看,你想只显示2行吗?是的,这就是我想要的输出。谢谢。我实现了您的解决方案,另外删除了最后一个映射,现在它可以工作了,谢谢。我实现了您的解决方案,另外删除了最后一个映射,现在它可以工作了