按日期降序对表中的数据进行排序:react js



我已经以表格形式显示了API的数据,我正在尝试按日期对数据进行排序,但我没有得到正确的排序。如果有人能帮我,那会很有帮助的。

const groupedByDate = res.data.reduce((meals, meal) => {
if (meal.date in meals) {
meals[meal.date].push(meal);
} else {
meals[meal.date] = [meal];
}
return meals;
}, {});
const sortedOnDate = Object.values(groupedByDate).sort((arr1, arr2) => {
if (arr1[0].date < arr2[0].date) {
return -1;
} else if (arr1[0].date > arr2[0].date) {
return 1;
}
return 0;
});
setData(sortedOnDate);
});

我还添加了一个我尝试过的的代码沙盒

演示

如果你能编辑沙盒并提供一个的工作示例,这将非常有帮助

因为日期格式为DD-MM-YYYY,所以按此方式排序如果日期为YYY-MM-DD格式,则可以对其进行排序。

它有点古怪,但它在您当前的代码库中有效。

const sortedOnDate = Object.values(groupedByDate).sort((arr1, arr2) => {
// Convert DD-MM-YYYY into YYYY-MM-DD
const ymdDate1 = arr1[0].date.split("-").reverse().join("-");
const ymdDate2 = arr2[0].date.split("-").reverse().join("-");
if (ymdDate1 < ymdDate2) {
return -1;
} else if (ymdDate1 > ymdDate2) {
return 1;
}
return 0;
});
setData(sortedOnDate);

最新更新