如何使用 javascript 将 API 数据转换为 react-native 中的部分列表数据

Posted

技术标签:

【中文标题】如何使用 javascript 将 API 数据转换为 react-native 中的部分列表数据【英文标题】:How to convert API data to section list data in react-native using javascript 【发布时间】:2020-10-04 11:29:05 【问题描述】:

我想将 API 数据转换为 react-native 中的部分列表格式。这样我就可以在部分列表中显示我的数据。以下是我的 API 数据

  data:[
    
      id:'1',
      fullname: "seela",
      inspection_date: "2020-06-10T04:45:32Z",
      issues: 1,
      response:
        shift_name:'Day'
      
    ,
    
      id:'2',
      fullname: "Raju vijayan",
      inspection_date: "2020-06-9T04:45:32Z",
      issues: 3,
      response:
        shift_name:'Afternoon'
      
    ,
    
      id:'3',
      fullname: "Pratap P",
      inspection_date: "2020-06-8T04:45:32Z",
      issues: 2,
      response:
        shift_name:'Afternoon'
      
    
  ]

我想转换为如下的部分列表格式。

data:[
  
    shift_name:'Day',
    data:[
    
      id:'1',
      fullname: "seela",
      inspection_date: "2020-06-10T04:45:32Z",
      issues: 1,
      response:
        shift_name:'Day'
      
     
    ]
  ,
  
    shift_name:'Afternoon',
    data:[
      
        id:'2',
        fullname: "Raju vijayan",
        inspection_date: "2020-06-9T04:45:32Z",
        issues: 3,
        response:
          shift_name:'Afternoon'
        
      ,
      
        id:'3',
        fullname: "Pratap P",
        inspection_date: "2020-06-8T04:45:32Z",
        issues: 2,
        response:
          shift_name:'Afternoon'
        
      
    ]
  
]

如何使用 array.map 或任何其他运算符将 API 数据转换为 react-native 中的部分列表

【问题讨论】:

【参考方案1】:

你可以使用如下的 reducer 函数。

const data = [
    id: '1',
    fullname: "seela",
    inspection_date: "2020-06-10T04:45:32Z",
    issues: 1,
    response: 
      shift_name: 'Day'
    
  ,
  
    id: '2',
    fullname: "Raju vijayan",
    inspection_date: "2020-06-9T04:45:32Z",
    issues: 3,
    response: 
      shift_name: 'Afternoon'
    
  ,
  
    id: '3',
    fullname: "Pratap P",
    inspection_date: "2020-06-8T04:45:32Z",
    issues: 2,
    response: 
      shift_name: 'Afternoon'
    
  
];

const reducer = (acc, cur) => 
  const item = acc.find((x) => x.shift_name === cur.response.shift_name);
  if (item) 
    item.data.push(cur);
   else 
    acc.push(
      shift_name: cur.response.shift_name,
      data: [cur]
    );
  
  return acc;
;

console.log(data.reduce(reducer, []))

【讨论】:

以上是关于如何使用 javascript 将 API 数据转换为 react-native 中的部分列表数据的主要内容,如果未能解决你的问题,请参考以下文章

(转)如何在JavaScript与ActiveX之间传递数据2

(转)如何在JavaScript与ActiveX之间传递数据3

[转]MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite

el-table数据转化为json后如何转换

如何将两个参数传递给 Javascript/NodeJS 中的 API“获取”请求

如何使用 fetch 将 FormData 从 javascript 发送到 ASP.NET Core 2.1 Web API