Я работаю в угловых 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$);
}
Что я хотел бы сделать, это удалить пустые массивы из результатов, возвращаемых функциейlateLatest (…), и упростить остальные в один одномерный массив.
Я понимаю, что это можно сделать, пропустив карту (…), flatMap (…) или тому подобное.Но я пробовал такие вещи, и ничего не получалось.
Например, я пробовал это:
Return Observable.combineLatest(groupedInvitations$).pipe(
map(item => {
console.log(item);
});
);
Но на консоль ничего не регистрируется.
Как я могу сгладить массив и удалить пустые массивы?Спасибо.