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 属性都是相同的。

相关内容

热门资讯

2分钟辅助!wepoker手机... 2分钟辅助!wepoker手机助手,pokermaster辅助器,法子教程(有挂工具)亲,关键说明,...
第五分钟辅助!pokemmo辅... 第五分钟辅助!pokemmo辅助器手机版下载,拱趴大菠萝怎么开挂,教材教程(有挂功能)1、玩家可以在...
五分钟辅助!hhpoker是真... 五分钟辅助!hhpoker是真的还是假的,哈糖大菠萝有挂吗,积累教程(有挂详情)1、每一步都需要思考...
八分钟辅助!epoker免费透... 八分钟辅助!epoker免费透视脚本,hhpoker辅助器,手段教程(有挂透明挂)1、每一步都需要思...
第二分钟辅助!we-poker... 第二分钟辅助!we-poker正规吗,hhpoker一直输有挂吗,总结教程(的确有挂)1、hhpok...
八分钟辅助!pokermast... 八分钟辅助!pokermaster辅助器,wpk透视插件,策略教程(有挂方法)1、pokermast...
2分钟辅助!拱趴大菠萝有什么挂... 2分钟辅助!拱趴大菠萝有什么挂,hhpoker必备开挂,烘培教程(有挂秘籍)1、拱趴大菠萝有什么挂公...
4分钟辅助!wepoker软件... 4分钟辅助!wepoker软件靠谱么,wepoker免费脚本,法门教程(有挂详细)1、用户打开应用后...
第九分钟辅助!wepoker有... 第九分钟辅助!wepoker有脚本吗,wepoker透视脚本免费app,手筋教程(有挂方式)1、we...
第九分钟辅助!德普之星私人局辅... 第九分钟辅助!德普之星私人局辅助器,德普之星辅助工具如何打开,步骤教程(有挂猫腻)1、德普之星辅助工...