RxJava有一个方法toSortedList(Comparator comparator)
,它将对象流转换为由比较器排序的对象列表。
如何在JavaScript中使用RxJS实现相同的功能,并获得带有对象流的Observable以发出已排序的数组/列表?
答案 0 :(得分:6)
您可以使用以下代码:
Rx.Observable.of(5,8,7,9,1,0,6,6,5).toArray().map(arr=>arr.sort()).subscribe(x=>console.log(x))
答案 1 :(得分:0)
使用 rxjs@7.1.0
import { of } from 'rxjs';
import { map, toArray } from 'rxjs/operators';
const obs = of(5,8,7,9,1,0,6,6,5).pipe(
toArray(),
map(arr=> arr.sort((a,b) => a - b)
);
obs.subscribe(x => {
console.log(x);
});
输出 [0, 1, 5, 5, 6, 6, 7, 8, 9]
答案 2 :(得分:-1)
我不熟悉哪些RxJS运算符可用,但您可以通过映射/ doOnNext获取toSortedList
行为并手动调用sort:
source.toList().map(v -> { Collections.sort(v, comparator); return v; })...
source.toList().doOnNext(v -> Collections.sort(v, comparator))...