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>



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.


Optional. Default is undefined.

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


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


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.


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.