Javascript 如何为SectionList变换对象数组
我的API服务具有以下数组结构Javascript 如何为SectionList变换对象数组,javascript,react-native,Javascript,React Native,我的API服务具有以下数组结构 [ { id: 1001, orderNo: 'abc', customer: 'John', date: 1524526218641 }, { id: 1002, orderNo: 'def', customer: 'Ringo', date: 1524555627191 }, { id: 1003, orderNo: 'ghi', customer: '
[
{
id: 1001,
orderNo: 'abc',
customer: 'John',
date: 1524526218641
},
{
id: 1002,
orderNo: 'def',
customer: 'Ringo',
date: 1524555627191
},
{
id: 1003,
orderNo: 'ghi',
customer: 'George',
date: 1524555662611
},
{
id: 1004,
orderNo: 'jkl',
customer: 'Paul',
date: 1524717318641
}
]
根据需要,我将原始阵列结构从API服务转换为:
[
{
title: '23/4/2018',
data: [
{
id: 1001,
orderNo: 'abc',
customer: 'John',
date: 1524526218641
}
]
},
{
title: '24/4/2018',
data: [
{
id: 1002,
orderNo: 'def',
customer: 'Ringo',
date: 1524555627191
},
{
id: 1003,
orderNo: 'ghi',
customer: 'George',
date: 1524555662611
}
]
},
{
title: '25/4/2018',
data: [
{
id: 1004,
orderNo: 'jkl',
customer: 'Paul',
date: 1524717318641
}
]
}
]
对于标题部分,我使用以下函数:
我想我可以使用数组方法,但我还没有创建所需的结构
const数据=[
{
id:1001,
订单号:“abc”,
顾客:“约翰”,
日期:1524526218641
},
{
id:1002,
订单号:“def”,
顾客:“Ringo”,
日期:1524555627191
},
{
身份证号码:1003,
订单号:“ghi”,
顾客:“乔治”,
日期:1524555662611
},
{
身份证号码:1004,
订单号:“jkl”,
顾客:“保罗”,
日期:1524717318641
}
]
设res=data.reduce((re,o)=>{
让existObj=re.find(
obj=>obj.title==新日期(o.Date).toLocaleDateString()
)
if(existObj){
existObj.data.push(o)
}否则{
再推({
标题:新日期(o.Date).toLocaleDateString(),
数据:[o]
})
}
返回re
}, [])
console.log(res)
试试看。如果要根据日期对数据对象进行分组,则需要手动遍历组。遗憾的是,这不起作用。如果日期相同,他想将其分组。@user1496463,对不起,我失明了,现在更新了,请检查一下