> For the complete documentation index, see [llms.txt](https://junwoo45.gitbook.io/learn-rxjs-korean/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://junwoo45.gitbook.io/learn-rxjs-korean/learn-rxjs/recipes-1/conditional/sequenceequal.md).

# sequenceEqual

#### signature: `sequenceEqual(compareTo: Observable, comparor?: (a, b) => boolean): Observable`

## Compares emitted sequence to expected sequence for match

### Examples

**Example 1: simple sequenceEqual**

( [Stackblitz](https://stackblitz.com/edit/rxjs-sequenceequal?file=index.ts\&devtoolsheight=100) )

```javascript
// RxJS v6+
import { of, from } from 'rxjs';
import { sequenceEqual, switchMap } from 'rxjs/operators';

const expectedSequence = from([4, 5, 6]);

of([1, 2, 3], [4, 5, 6], [7, 8, 9])
  .pipe(switchMap(arr => from(arr).pipe(sequenceEqual(expectedSequence))))
  .subscribe(console.log);

//output: false, true, false
```

**Example 2: sequenceEqual with keyboard events**

( [Stackblitz](https://stackblitz.com/edit/rxjs-sequenceequal-buffercount?file=index.ts\&devtoolsheight=50) )

```javascript
// RxJS v6+
import { from, fromEvent } from 'rxjs';
import { sequenceEqual, map, bufferCount, mergeMap, tap } from 'rxjs/operators';

const expectedSequence = from(['q', 'w', 'e', 'r', 't', 'y']);
const setResult = text => (document.getElementById('result').innerText = text);

fromEvent(document, 'keydown')
  .pipe(
    map((e: KeyboardEvent) => e.key),
    tap(v => setResult(v)),
    bufferCount(6),
    mergeMap(keyDowns =>
      from(keyDowns).pipe(
        sequenceEqual(expectedSequence),
        tap(isItQwerty => setResult(isItQwerty ? 'WELL DONE!' : 'TYPE AGAIN!'))
      )
    )
  )
  .subscribe(e => console.log(`did you say qwerty? ${e}`));
```

### Related Recipes

* [Lockscreen](/learn-rxjs-korean/learn-rxjs/recipes/lockscreen.md)
* [Memory Game](/learn-rxjs-korean/learn-rxjs/recipes/memory-game.md)

### Additional Resources

* [sequenceEqual](https://rxjs.dev/api/operators/sequenceEqual)

  :newspaper: - Official docs

> :file\_folder: Source Code: <https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/sequenceEqual.ts>
