【发布时间】:2017-08-25 10:33:44
【问题描述】:
我是响应式编程的新手,有时会有点复杂。
给定一个来自服务事件的列表[]
事件看起来像
Event:
{
beginDate: Date,
name: string,
type: State
}
State:
{
PENDING, FINISHED, UPCOMING
}
我想按以下结构分组
GroupedByMonthEvent:
{
monthYear: Date,
event: Event
}
我用命令式写它:
allEvents$: Observable<Tournament[]>;
allEventsGrouped$: Observable<GroupedByMonthEvent[]>;
...
this.allEvents$ = this.store.select(state => state.events);
this.allEventsGrouped$ = this.allEvents$.map(t => {
return _.chain(t).sortBy(function (value) {
return new Date(value.beginDate);
})
.groupBy(function (event) {
return moment(event.beginDate).format('MMMM YYYY');
}).toPairs()
.map(function (events: Event[]) {
return _.zipObject(['monthYear', 'events'], events);
})
.value();
});
接下来我要过滤那个 Observerable。 我试图 .map 和 .filter 该集合,但我不明白。 现在我只是订阅 Observerable 并用老式方法过滤它。
有人可以帮助使用 RxJS 魔法在一个简单的语句中对其进行分组和过滤吗?
【问题讨论】:
标签: angular rxjs observable