Vue.js 如何按日期对筛选结果进行排序

Vue.js how to sort filtered results by date

我们正在推出一个活动应用程序,用户可以在其中搜索即将举行的音乐节。我们还希望过滤后的搜索结果按 "startDate".

的时间顺序显示

我们的活动卡片:

<v-card flat class="pa-2 mb-3 eventcard" v-for="event in filteredEvents" :key="event.id"></v-card>

然后我们计算出属性:

filteredEvents: function(){
    return this.$store.getters.loadedEvents.filter((event) => {
      return event.title.toLowerCase().match(this.search.toLowerCase())
    })
  }

最后,活动开始日期的示例:

startDate:"2018-04-13"

根据文档,我尝试添加“_.orderBy(this.event, 'startDate')”,但我只是收到错误 this.search.toLowerCase(...).orderBy is not a function

有什么想法吗?谢谢!

使用.sort

export default {
  filteredEvents: function() {
    return this.$store.getters.loadedEvents
      .filter(event => {
        return event.title.toLowerCase().match(this.search.toLowerCase());
      })
      .sort(function(a, b) {
        // Turn your strings into dates, and then subtract them
        // to get a value that is either negative, positive, or zero.
        return new Date(b.startDate) - new Date(a.startDate);
      });
  }
};

来自

的方法