W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
返回一個(gè) Observable,它發(fā)出源 Observable 發(fā)出的所有項(xiàng)目,這些項(xiàng)目與以前的項(xiàng)目相比是不同的。
distinct<T, K>(keySelector?: (value: T) => K, flushes?: Observable
<any>):MonoTypeOperatorFunction
<T>
keySelector | 可選的。 默認(rèn)值為 undefined 。 可選功能,用于選擇您要檢查為不同的值。 |
---|---|
flushes | 可選的。 默認(rèn)值為 undefined 。 可選 Observable,用于刷新運(yùn)算符的內(nèi)部HashSet。 |
MonoTypeOperatorFunction<T>
:一個(gè) Observable,它從源 Observable 發(fā)出具有不同值的項(xiàng)目。
如果提供了 keySelector 函數(shù),則它將可觀察到的源中的每個(gè)值投影到一個(gè)新值中 檢查與先前預(yù)測的值是否相等。 如果未提供 keySelector 函數(shù),它將使用來自 可以直接通過對(duì)先前值的相等性檢查來觀察源。
在支持的 JavaScript 運(yùn)行時(shí)中 Set
,此運(yùn)算符將使用 Set
來提高非重復(fù)值檢查的性能。
在其他運(yùn)行時(shí),該運(yùn)營商將使用一個(gè)最小的實(shí)現(xiàn) Set
依賴于一個(gè) Array
和 indexOf
下 引擎蓋,因此當(dāng)檢查更多的值以區(qū)別時(shí),性能將下降。 即使在較新的瀏覽器中,長期運(yùn)行 distinct
使用可能會(huì)導(dǎo)致內(nèi)存泄漏。 為了在某些情況下緩解這種情況, 一個(gè)可選 flushes
還提供了 參數(shù),以便 內(nèi)部 Set
可以被“清除”,基本上清除了其價(jià)值。
一個(gè)簡單的數(shù)字例子
import { of } from 'rxjs';
import { distinct } from 'rxjs/operators';
of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe(
distinct(),
)
.subscribe(x => console.log(x)); // 1, 2, 3, 4
使用 keySelector 函數(shù)的示例
import { of } from 'rxjs';
import { distinct } from 'rxjs/operators';
interface Person {
age: number,
name: string
}
of<Person>(
{ age: 4, name: 'Foo'},
{ age: 7, name: 'Bar'},
{ age: 5, name: 'Foo'},
).pipe(
distinct((p: Person) => p.name),
)
.subscribe(x => console.log(x));
// displays:
// { age: 4, name: 'Foo' }
// { age: 7, name: 'Bar' }
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)系方式:
更多建議: