I have object something like below which I am getting from API;
const people = [
{ name: 'Alex joe', age: 28 ,date:'2022-08-22'},
{ name: 'Alice', age: 21 ,date:'2022-08-18'},
{ name: 'Anki', age: 25 ,date:'2022-08-22'},
{ name: 'Max', age: 20 ,date:'2022-08-18'},
{ name: 'Jane', age: 20 ,date:'2022-08-20'},
{ name: 'John schinger', age: 17 ,date:'2022-08-22'},
{ name: 'Alice', age: 21 ,date:'2022-08-20'},
{ name: 'Max', age: 20 ,date:'2022-08-20'},
{ name: 'Jane', age: 20 ,date:'2022-08-22'},
];
I want it to be sorted wrt date mentioned in the each object like below, so that I can use it in SectionList of React.
const output = [
{title:'2022-08-18', data:[
{ name: 'Alice', age: 21 ,date:'2022-08-18'},
{ name: 'Max', age: 20 ,date:'2022-08-18'}
]
},
{title:'2022-08-20', data:[
{ name: 'Jane', age: 20 ,date:'2022-08-20'},
{ name: 'Alice', age: 21 ,date:'2022-08-20'},
{ name: 'Max', age: 20 ,date:'2022-08-20'}
]
},
{title:'2022-08-22', data:[
{ name: 'Jane', age: 20 ,date:'2022-08-22'},
{ name: 'Anki', age: 25 ,date:'2022-08-22'},
{ name: 'Alex joe', age: 28 ,date:'2022-08-22'},
{ name: 'John schinger', age: 17 ,date:'2022-08-22'},
]
}
]
I want to use this data in my sectionList which asks for title and data as key, tried to use reduce but failed to get the result... can please someone help me out with it, Thanks..
people.reduce((acc, item) => {
const existingDateIndex = acc.findIndex(
(element) => element.title === item.date
);
if (existingDateIndex > -1) {
acc[existingDateIndex].data.push(item);
} else {
acc.push({ title: item.date, data: [item] });
}
return acc;
}, []);
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments