Angular的distinctUntilChanged-Valuecomparison
创始人
2024-10-24 03:00:29
0

Angular 的 Operators 中有一个 distinctUntilChanged 操作符,它可以过滤掉连续发送相同元素的 Observable。默认情况下,它使用的是对象引用比较,即只有当两个发射出来的元素的引用不同,才会被认为是不同的。但有时我们需要使用值比较,即只要两个元素的属性值相同,就认为它们相同,如下例:

const obj1 = { id: 1 };
const obj2 = { id: 1 };

of(obj1, obj2, obj2, obj1)
  .pipe(distinctUntilChanged())
  .subscribe(console.log);
// Output:
// { id: 1 }
// { id: 1 }
// { id: 1 }
// { id: 1 }

of(obj1, obj2, obj2, obj1)
  .pipe(distinctUntilChanged((prev, curr) => prev.id === curr.id))
  .subscribe(console.log);
// Output:
// { id: 1 }

可以看到,第一个例子中,obj1 和 obj2 被认为是两个不同的元素,因为它们的引用不同,而第二个例子中,只有一个元素被输出,因为 obj1 和 obj2 的 id 属性都是相同的。

相关内容

热门资讯

第8个苹果版!德扑之星电脑版(... 第8个苹果版!德扑之星电脑版(有没有规律)透视辅助(有挂细节)-哔哩哔哩;最新版2024是一款经典耐...
第8智能!jj斗地主看底牌神器... 第8智能!jj斗地主看底牌神器(透视)太坑了原来真的有挂(有挂规律)-哔哩哔哩1、打开德州poker...
第五最新款(轰趴大菠萝)外挂透... 第五最新款(轰趴大菠萝)外挂透明挂辅助器(辅助挂)我来教教你(有挂实锤)-哔哩哔哩;实战中需综合运用...
5个后台!德扑自定义房间(智能... 5个后台!德扑自定义房间(智能系统)软件透明挂(有挂功能)-哔哩哔哩,亲,有的,ai轻松简单,又可以...
第四德州版!边锋斗地主可以控牌... 您好,边锋斗地主可以控牌吗这款游戏可以开挂的,确实是有挂的,需要了解加微【439369440】很多玩...
第九个外挂!we poke软件... 第九个外挂!we poke软件免费版(We辅poker助)辅助透视(有挂头条)-哔哩哔哩;原来确实真...
5稳赢(德扑之星底牌)外挂透明... 5稳赢(德扑之星底牌)外挂透明挂辅助app(辅助挂)AI教程(有人有挂)-哔哩哔哩;实战中需综合运用...
第5个必胜!德扑之星禁止模拟器... 第5个必胜!德扑之星禁止模拟器(代打)透视辅助(确实有挂)-哔哩哔哩是由北京得德扑之星黑科技有限公司...
第5机器人!传送屋激k(透视)... 1、第5机器人!传送屋激k(透视)太坑了原来真的有挂(有挂辅助)-哔哩哔哩2、进入游戏-大厅左侧-新...
第8透视(wpk德州俱乐部)外... 第8透视(wpk德州俱乐部)外挂透明挂辅助神器(透视)技巧教程(确实有挂)-哔哩哔哩准备好在wpk德...