Я пытаюсь эффективно отсортировать наблюдаемый массив, не назначая новую наблюдаемую текущую наблюдаемую.
Я пробовал много разных решений, но в настоящее время самое близкое, которое я получил, наиболее близко использовалось.
let testObvs$ = of([3, 5, 2, 1, 4]);
testObvs$.pipe(map(results => {
return results.sort((a, b) => {
let res = compare(a, b);
return direction === 'asc' ? res : -res;
})
}))
testObvs$.subscribe(e => console.log(e))
Ожидаемый результат в подписке [1,2,3,4,5] вернул результат [3,4,2,1,4]
Мне нужно заказать testObvs $ на основенаправление. Я проверил функции сравнения и сортировки с помощью Number [], и они возвращают обычный массив в правильном порядке.
Я использую угловые 8.2 и rxjs 6.4.0
Конечная цельдля этого вида нужно было отсортировать массив объектов по определенному свойству, как это.
this.questions
.pipe(
map(results => {
return results.sort((a, b) => {
let res = compareString(a[column].replace(/<.*?>/g, ''),
b[column].replace(/<.*?>/g, ''));
debugger;
return direction === 'asc' ? res : -res;
})
})
).subscribe();
export const compareString = ( a, b ) => {
if ( a < b ){
return -1;
}
if ( a > b ){
return 1;
}
return 0;
}