我正在使用 Angular 6 应用程序。我有一个函数,它返回一个可观察对象数组的可观察对象,而这些可观察对象又是数组的可观察对象。
结果可能如下所示:
[
[],
[],
[object, object],
[],
[object],
[],
[object, object, object],
[]
]
如您所见,它是一个数组数组,有些数组可能是空的。
我想在页面上的每个内部数组中列出每个对象,如下所示:
<div *ngFor="let watcher of InvitationService.getInvitations() | async">
<div *ngFor="let invitation of watcher">
{{ invitation | json }}
</div>
</div>
getInvitations() 看起来像这样:
getInvitations() {
const groupedInvitations$: Observable<any>[] = [];
groups.forEach(group => {
const groupInvites$ = this._firestoreService.collection(`GroupInvitations/${group.groupID}/Invites`);
groupedInvitations$.push(groupInvites$);
});
Return Observable.combineLatest(groupedInvitations$);
}
我想要做的是从 combineLatest(...) 返回的结果中删除空数组,并将其余数组展平为单个一维数组。
我知道可以通过管道通过 map(...) 或 flatMap(...) 或类似的东西来做到这一点。但我一直在尝试这样的事情,但没有任何效果。
例如,我试过这个:
Return Observable.combineLatest(groupedInvitations$).pipe(
map(item => {
console.log(item);
});
);
但是没有任何东西被记录到控制台。
如何展平阵列并删除空阵列?谢谢。