在今日RN开发过程中遇见了一个问题,接口返回数据未作处理,需要前端把数据处理一下,返回是以下这种格式:
msg:[
{
},
{
},
....
]
而我需要以下这种格式:
msg:[
"xxx": " ",
data: [
{
},
{
},
....
]
]
所用知识点(es6高阶函数):
- map()
- reduce()
- for(xxx of xxx)
- Set()
以上函数具体详解请看菜鸟教程
最后结果
let data =[{
"Id": 6,
"Member": "18831419865",
"OrderNo": "GM20061215290001",
"ShopNo": "ff808081729ced310172a7070c7a008f",
"ProductName": null,
"Price": 0.019999999552965164,
"OrderUser": "ff80808172a71e0c0172a739407d0008",
"MemType": "一级代理",
"Spot": 0.02,
"CommPrice": 0.00039999999105930331,
"OrderDateTime": "2020-05-01T15:18:50.7844556",
"CommInfo": "销售返佣"
}, {
"Id": 7,
"Member": "18831419865",
"OrderNo": "GM20061215290001",
"ShopNo": "ff808081729ced310172a7070c7a008f",
"ProductName": null,
"Price": 0.019999999552965164,
"OrderUser": "ff80808172a71e0c0172a739407d0008",
"MemType": "一级代理",
"Spot": 0.02,
"CommPrice": 0.00039999999105930331,
"OrderDateTime": "2020-05-01T15:18:54.7421313",
"CommInfo": "销售返佣"
}, {
"Id": 8,
"Member": "18831419865",
"OrderNo": "GM20061215290001",
"ShopNo": "ff808081729ced310172a7070c7a008f",
"ProductName": null,
"Price": 0.019999999552965164,
"OrderUser": "ff80808172a71e0c0172a739407d0008",
"MemType": "一级代理",
"Spot": 0.02,
"CommPrice": 0.00039999999105930331,
"OrderDateTime": "2020-06-01T15:18:56.159198",
"CommInfo": "销售返佣"
}, {
"Id": 9,
"Member": "18831419865",
"OrderNo": "GM20061215290001",
"ShopNo": "ff808081729ced310172a7070c7a008f",
"ProductName": null,
"Price": 0.019999999552965164,
"OrderUser": "ff80808172a71e0c0172a739407d0008",
"MemType": "一级代理",
"Spot": 0.02,
"CommPrice": 0.00039999999105930331,
"OrderDateTime": "2020-06-01T15:22:07.3859633",
"CommInfo": "销售返佣"
}, {
"Id": 10,
"Member": "18831419865",
"OrderNo": "GM20061215290001",
"ShopNo": "ff808081729ced310172a7070c7a008f",
"ProductName": null,
"Price": 1000.0,
"OrderUser": "ff80808172a71e0c0172a739407d0008",
"MemType": "一级代理",
"Spot": 0.02,
"CommPrice": 20.0,
"OrderDateTime": "2020-08-01T15:24:41.5155469",
"CommInfo": "销售返佣"
}, {
"Id": 11,
"Member": "18831419865",
"OrderNo": "GM20061215290001", //订单编号
"ShopNo": "ff808081729ced310172a7070c7a008f",
"ProductName": null,
"Price": 1000.0,
"OrderUser": "ff80808172a71e0c0172a739407d0008",
"MemType": "一级代理",
"Spot": 0.02,
"CommPrice": 20.0,
"OrderDateTime": "2020-09-01T15:24:45.5638624",
"CommInfo": "销售返佣"
}]
let dateList = (data) => {
// 创建空数组
let dataList = []
// 循环遍历元数据提起日期(map()函数相当于数组深复制)
let dateLists = data.map((item)=>
// 我的元数据日期格式,提取年月日
return item.OrderDateTime.substring(0,10)
})
// 将日期的数组进行查重,for循环遍历
for(item of [...new Set(dateLists)]){
// 创建一个空数组(笔者需要数据相当于数组嵌套数组格式)
let a = []
for(i of data){
if(item == i.OrderDateTime.substring(0,10)){
a.push(i)
dataList.push({title:item,data:a})
}
}
}
// 以下步骤是将数组中的对象去重
let hash = {};
return dataList = dataList.reduce((item,next)=>{
hash[next.title] ? '' : hash[next.title] = true && item.push(next);
return item
},[])
}
console.log(dateList(data));
最后打印结果: