W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
使用可選的比較器函數(shù)按順序比較兩個(gè)可觀察值的所有值,并返回表示兩個(gè)序列是否相等的單個(gè)布爾值的可觀察值。
sequenceEqual<T>(compareTo: Observable
<T>, comparator?: (a: T, b: T) => boolean): OperatorFunction
<T, boolean>
相比于 | 與源序列進(jìn)行比較的可觀察序列。 |
---|---|
比較器 | 可選的。默認(rèn)值為undefined ??蛇x功能,用于比較每個(gè)值對(duì) |
OperatorFunction<T, boolean>
:一個(gè)布爾值的 Observable,它表示兩個(gè) Observable 發(fā)出的值順序是否相等。
按順序檢查兩個(gè)可觀察對(duì)象發(fā)出的所有值是否相等。
sequenceEqual
訂閱兩個(gè)可觀察對(duì)象,并緩沖每個(gè)可觀察對(duì)象的傳入值。每當(dāng)可觀察到的任何一個(gè)發(fā)出一個(gè)值時(shí),該值都會(huì)被緩沖,并且緩沖區(qū)會(huì)從下往上移動(dòng)并進(jìn)行比較;如果任何值對(duì)不匹配,則返回的 observable 將發(fā)出 false
并完成。如果其中一個(gè)可觀察物完成,操作員將等待另一個(gè)可觀察物完成;如果另一個(gè)可觀察對(duì)象在完成之前發(fā)出,則返回的可觀察對(duì)象將發(fā)出 false
并完成。如果一個(gè)可觀測(cè)對(duì)象永遠(yuǎn)不會(huì)完成或在其他完成之后發(fā)出,則返回的可觀測(cè)對(duì)象將永遠(yuǎn)不會(huì)完成。
找出 Konami 代碼是否匹配
import { from, fromEvent } from 'rxjs';
import { sequenceEqual, bufferCount, mergeMap, map } from 'rxjs/operators';
const codes = from([
'ArrowUp',
'ArrowUp',
'ArrowDown',
'ArrowDown',
'ArrowLeft',
'ArrowRight',
'ArrowLeft',
'ArrowRight',
'KeyB',
'KeyA',
'Enter', // no start key, clearly.
]);
const keys = fromEvent(document, 'keyup').pipe(map(e => e.code));
const matches = keys.pipe(
bufferCount(11, 1),
mergeMap(
last11 => from(last11).pipe(sequenceEqual(codes)),
),
);
matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched));
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: