我已經以表格形式顯示了 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);
});
我還添加了一個我嘗試過的代碼沙箱
演示
如果您可以編輯沙箱并提供作業示例,這將非常有幫助
uj5u.com熱心網友回復:
它是這樣排序的,因為您的日期格式是 DD-MM-YYYY 如果它是 YYY-MM-DD 格式,您可以對日期進行排序。
這有點hacky,但它適用于您當前的代碼庫。
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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/397923.html
標籤:反应
