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

相关内容

热门资讯

盘点几款“贪玩蓝月辅助脚本”原... 盘点几款“贪玩蓝月辅助脚本”原先有开挂辅助挂(真实有挂);无需打开直接搜索微信(136704302)...
推荐一款“都莱辅助器安全吗”素... 推荐一款“都莱辅助器安全吗”素来有辅助器(有挂方法);无需打开直接搜索薇:136704302 咨询了...
记者揭秘“中至余干万能辅助器”... 记者揭秘“中至余干万能辅助器”先前有辅助开挂脚本(有挂细节);打开点击测试直接进入微信(136704...
玩家必备攻略“九九山城插件程序... 玩家必备攻略“九九山城插件程序”原先有辅助开挂下载(有挂解惑);无需打开直接搜索加薇13670430...
一秒答解“四川麻将血战如何开挂... 您好:这款四川麻将血战如何开挂辅助游戏是可以开挂的,确实是有挂的,很多玩家在这款四川麻将血战如何开挂...
传递经验“wpk是真的还是假的... wpk是真的还是假的是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加...
透视挂“途游游戏辅助脚本”原生... 透视挂“途游游戏辅助脚本”原生有辅助开挂器(有挂教程)您好:途游游戏辅助脚本这款游戏可以开挂,确实是...
一分钟教你“新世界辅助器”起初... 一分钟教你“新世界辅助器”起初有开挂辅助工具(详细教程);无需打开直接搜索打开薇:136704302...
发现玩家“胡莱三国辅助工具”一... 发现玩家“胡莱三国辅助工具”一向有开挂辅助脚本(揭秘有挂)您好:胡莱三国辅助工具这款游戏可以开挂,确...
透视教程“乐享麻将连连看辅助”... 透视教程“乐享麻将连连看辅助”固有有辅助下载(有挂总结);无需打开直接搜索打开薇:136704302...