我有這個候選數組。其中一些被刪除,其中一些不是。他們是無序的,我想用姓氏來命令他們,以及他們是否被刪除。我使用的管道只接受數組,如果元素是對象,則通過給定的屬性對它們進行排序。分區,轉換,然後用rxjs壓縮到新數組
這並不難:
let added = this.candidates.filter(c => !c.removed);
let removed = this.candidates.filter(c => c.removed);
added = new OrderByPipe().transform(added, ['lastName']);
removed = new OrderByPipe().transform(removed, ['lastName']);
let orderedCandidates = added.concat(removed);
對於我自身的興趣,我想通過.partition()
到我的候選人數組轉換爲可觀察到的和管它到目前爲止,我管理:
orderCandidates() {
let [added, removed] = Observable.from(this.candidates)
.partition(c => !c.removed);
added = added.toArray().map(a => new OrderByPipe().transfrom(a, ['-lastName']));
removed = removed.toArray().map(r => new OrderByPipe().transfrom(r, ['-lastName']));
}
然後我想壓縮或連接我的兩個排序數組到一個新的數組。我最近了解到,我對rxjs中的所有內容都有這樣的想法,流經一條非常精簡的流水線,而當我嘗試遵守這一形象時,我覺得我已經沒有想法。
無覆蓋Downvotes ut解釋沒有用。 – wolfhoundjesse