1 回答

TA貢獻1744條經驗 獲得超4個贊
我使用您的模擬數據整理了一個 CodeSandbox React 示例。你可以在這里查看。
我在那里寫了一個函數,groupBy它可能是你正在尋找的。它的功能類似于lodash groupBy 方法,如果您可以將 lodash 添加到項目中,則可以使用該方法。
順便說一句,這是 groupBy 函數的作用:
const events = [
{ date: "2020-04-19", description: "Meeting", startTime: "11:00", endTime: "12:00" },
{ date: "2020-04-19", description: "Coference", startTime: "18:00", endTime: "19:00" },
{ date: "2020-04-20", description: "Team Coference", startTime: "18:00", endTime: "19:00" },
{ date: "2020-04-21", description: "Happy hour cocktail" },
{ date: "2020-04-22", description: "MEditation Class" },
{ date: "2020-04-24", description: "MEditation Class" },
];
const groupBy = (arr, criteria) =>
arr.reduce((obj, item) => {
let key = typeof criteria === "function" ? criteria(item) : item[criteria];
if (!obj.hasOwnProperty(key)) obj[key] = [];
obj[key].push(item);
return obj;
}, {});
const grouped = groupBy(events, "date");
console.log(grouped);
希望這可以幫助,
添加回答
舉報