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);
});
}
};
来自
的方法
我们正在推出一个活动应用程序,用户可以在其中搜索即将举行的音乐节。我们还希望过滤后的搜索结果按 "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);
});
}
};
来自
的方法