W3cubDocs

/RxJS

filter

function stable

Filter items emitted by the source Observable by only emitting those that satisfy a specified predicate.

filter<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<T>

Parameters

predicate

A function that evaluates each value emitted by the source Observable. If it returns true, the value is emitted, if false the value is not passed to the output Observable. The index parameter is the number i for the i-th source emission that has happened since the subscription, starting from the number 0.

thisArg

Optional. Default is undefined.

An optional argument to determine the value of this in the predicate function.

Returns

MonoTypeOperatorFunction<T>: An Observable of values from the source that were allowed by the predicate function.

Description

Like Array.prototype.filter(), it only emits a value from the source if it passes a criterion function.

filter marble diagram

Similar to the well-known Array.prototype.filter method, this operator takes values from the source Observable, passes them through a predicate function and only emits those values that yielded true.

Example

Emit only click events whose target was a DIV element

import { fromEvent } from 'rxjs';
import { filter } from 'rxjs/operators';

const clicks = fromEvent(document, 'click');
const clicksOnDivs = clicks.pipe(filter(ev => ev.target.tagName === 'DIV'));
clicksOnDivs.subscribe(x => console.log(x));

See Also

© 2015–2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/filter