1 回答

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
我使用您的模擬數(shù)據(jù)整理了一個(gè) CodeSandbox React 示例。你可以在這里查看。
我在那里寫(xiě)了一個(gè)函數(shù),groupBy它可能是你正在尋找的。它的功能類(lèi)似于lodash groupBy 方法,如果您可以將 lodash 添加到項(xiàng)目中,則可以使用該方法。
順便說(shuō)一句,這是 groupBy 函數(shù)的作用:
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);
希望這可以幫助,
添加回答
舉報(bào)