Javascript 根据日期对事件进行排序的最佳方式是什么
我有一个包含数百个Javascript 根据日期对事件进行排序的最佳方式是什么,javascript,functional-programming,reactjs,Javascript,Functional Programming,Reactjs,我有一个包含数百个事件的数组,其中每个事件都有日期条目(在date()中。getTime格式为DB),我有10天的时间显示在简单的表格中。对于每天行,我需要显示该特定日期的事件数。最好的方法是什么 好的,这里有一个更新: 我使用以下结构创建了Firebase db: { events: { event1: { date: 144335265211, title: "sometext", text: "longer text" },
事件的数组,其中每个事件都有日期条目(在date()中。getTime
格式为DB),我有10天的时间显示在简单的表格中。对于每天行,我需要显示该特定日期的事件数。最好的方法是什么
好的,这里有一个更新:
我使用以下结构创建了Firebase db:
{
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;
}
for(设dc=0;dc<10;dc++){
const date=新日期();
date.setDate(date.getDate()+dc);
const m=date.getMonth();
const d=date.getDay();
const y=date.getUTCFullYear();
推(
“在“+m+”/“+d+”/“+y+”上有一些事件”
);
返回行;
}
非常感谢 首先需要将其转换为数组:
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将是一个对象,每个日期都有一个键,值为当天的事件数组。您的解释不太清楚。你能不能包括一些代码,比如a?元素是从数据库中提取出来的?您正在使用哪个数据库?请解释一下你想要什么,这样我们可以帮你。现在的问题是无法回答的!显示的数据不是数组,而是对象。将需要另一个对象,该对象使用日期作为键,并以数组作为值将事件放入作为起点,然后可能将其转换为数组或任何您需要的对象,以beThanks@charlietfl!你不介意给我举个简单的例子吗?谢谢,这很有帮助!我尝试使用countBy而不是groupBy来直接输出每天的事件计数。伟大的