我有一个对象event
数组,其中每个事件都有一个开始日期和一个结束日期。
我试图通过删除早于now
的任何事件来过滤事件。然后,我尝试将事件分类为最新事件,然后在屏幕上显示它们。
我正在使用以下例程:
constructor(props) {
// ..
this.props.events = this.filterAndSortEvents(props.events);
}
filterAndSortEvents(events: Object)
{
let Original = events;
const now = new Date();
// filter
let Filtered = events.map(function(e) {
if(e.endDate > Date.now())
{ return e }
});
// sort
let Sorted = Filtered.sort(function(a,b) {
return a.startDate > b.startDate ? -1 : a.startDate < b.startDate ? 1 : 0;
});
return Sorted;
}
但它不起作用:
最佳答案
也许您考虑使用 Array#filter
进行过滤。
let filtered = events.filter(e => e.endDate > Date.now());
您可以将时间的增量用作排序返回值(
Array#sort
在原位工作)。filtered.sort((a, b) => b.startDate - a.startDate);
然后返回
filtered
return filtered;
只是一个小提示,通常是难以实现的功能,通常使用大写首字母书写。