Skip to content

Instantly share code, notes, and snippets.

@longfellowone
Last active April 29, 2019 05:13
Show Gist options
  • Save longfellowone/18cf37cbda500218d897d9ff04788906 to your computer and use it in GitHub Desktop.
Save longfellowone/18cf37cbda500218d897d9ff04788906 to your computer and use it in GitHub Desktop.
Group by date
import React from "react";
import ReactDOM from "react-dom";
function App() {
const orders = [
{ date: 1556396396, project: "Project 1" },
{ date: 1556396416, project: "Project 2" },
{ date: 1552186577, project: "Project 3" },
{ date: 1554064562, project: "Project 4" },
{ date: 1556396473, project: "Project 5" },
{ date: 1552256702, project: "Project 6" },
{ date: 1552186855, project: "Project 8" }
];
const groupBy = func => array =>
array.reduce((acc, cur) => {
const key = func(cur);
acc[key] = (acc[key] || []).concat(cur);
return acc;
}, {});
const orderDate = order => new Date(order.date * 1000).toDateString();
const groupByDate = groupBy(orderDate);
const groupedOrders = groupByDate(orders);
return Object.keys(groupedOrders).map(date => (
<>
<div>{date}</div>
{groupedOrders[date].map(order => (
<div>{order.project}</div>
))}
</>
));
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment