Para filtrar los datos que te devuelve un observable, con rxjs puedes hacer uso del método pipe del observable.
El el código de tu componente, cuando haces la suscripción, puedes hacer el filtrado con algo como esto:
Importo la función map que voy a necesitar
import { map } from 'rxjs/operators';
En el ngOnInit hago el filtrado.
ngOnInit(): void {
this.usersService.getUsers().pipe(
map(users =>
users.filter(user => user.name.toLowerCase().indexOf('m') != -1)
)
).subscribe(
users => this.users = users
)
}
Así estoy obteniendo los usuarios que tienen la letra "m" en el nombre. Quizás ese código de filtrado estaría mejor en el servicio, no obstante, te vale como referencia.
Filtrado usando pipes
Ahora bien, realmente en la mayoría de los casos los filtrados los querrás realizar en función de datos de tu programa, y muchas veces en tiempo real, es decir: a medida que los criterios de filtrado cambian, cambian los datos que se muestran. Para ello es mucho más lógico usar pipes.
En este artículo encuentras las explicaciones y código de ejemplo para crear con pipes en Angular que te permitan filtrados.