根据日期对事件进行排序的最佳方法是什么

时间:2015-10-10 20:27:10

标签: javascript functional-programming reactjs

我有几百个events的数组,其中每个都有日期条目(数据库中的Date().getTime格式),我 10天显示在简单的表格中。对于每一天,我需要显示该特定日期的事件数量。最好的方法是什么?

好的,这是一个更新:

我有这种结构的Firebase数据库:

{
  events: {
    event1: {
      date: 144335265211,
      title: "sometext",
      text: "longer text"
      },
    event2: {
      date: 1444482619766,
      title: "sometext",
      text: "longer text"
      }
    }
 }

我将它拉到本地Redux商店,所以我有一个具有相同结构的JS数组。

这样我就可以在特定的日子里创建表格:

for (let dc = 0; dc < 10; dc++) {
     const date = new Date();
     date.setDate(date.getDate() + dc);
     const m = date.getMonth();
     const d = date.getDay();
     const y = date.getUTCFullYear();
      rows.push(
        <td>"On the " + m + "/" + d + "/" + y + " is SOMENUMBER events"</td>
      );
   return rows;
    }

非常感谢!

1 个答案:

答案 0 :(得分:1)

首先,您需要将其转换为数组:

var events = Object.keys(obj).map((key) => {
  return Object.assign({}, obj[key], {eventName: key});
});

然后你需要按日期对它们进行分组。我们可以用lodash做到这一点。

var groupBy = require('lodash/collection/groupBy');

var eventsWithDay = events.map((event) => {
  return Object.assign({}, event, {day: new Date(event.date).setHours(0, 0, 0, 0))
});

var byDay = groupBy(eventsWithDay, 'day');

byDay将是一个对象,每个日期都有一个键,其值为当天的一系列事件。