RXJS中的操作符distinctUntilChanged

1.distinctUntilChanged

返回一个 Observable,它发出源 Observable 发出的所有项目,这些项目与上一个项目相比是不同的。

import { of } from 'rxjs';
import { distinctUntilChanged } from 'rxjs/operators';
of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4,4,5,5).pipe(
    distinctUntilChanged(),
  )
  .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4, 5

还可以传入比较参数

distinctUntilChanged<T, K>(compare?: (x: K, y: K) => boolean, keySelector?: (x: T) => K): MonoTypeOperatorFunction<T>

调用可选的比较函数keySelector以测试某项是否与源中的上一项不同。

import { of } from 'rxjs';
import { distinctUntilChanged } from 'rxjs/operators';


of(
    { number: 2, name: 'zhangsan'},
    { number: 3, name: 'lisi'},
    { number: 5, name: 'lisi'},
    { number: 3, name: 'zhaoliu'},
  ).pipe(
    distinctUntilChanged((p: any, q: any) => p.name === q.name),
  )
  .subscribe(x => console.log(x));

//  { number: 2, name: 'zhangsan'}, { number: 3, name: 'lisi'},{ number: 3, name: 'zhaoliu'},

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值