为了账号安全,请及时绑定邮箱和手机立即绑定

防止在Angular中的数组中推送重复对象

防止在Angular中的数组中推送重复对象

幕布斯7119047 2022-11-03 10:14:11
我有一个子组件,它通过@Input()父组件(对象数组)接收数据。我映射该数据并将对象推送到来自 ngOnChanges 钩子中的输入数据数组的每个对象的新数组中。我的目标是防止重复对象被推入新数组。每次 ngOnChanges 触发时,都会将新对象推送到admins数组中。我尝试some在 if 语句中使用方法,但没有帮助。这是我的 OnChanges 钩子:ngOnChanges() {  this.adminsGroup.map(a => {    this.authService.getSpecUser(a.user).subscribe(      data => {        data.position = a.permissions;        this.admins.push(data);      }    )  });}所以我想确保在推送之前没有数组data。this.admins任何帮助,将不胜感激。
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超8个赞

检查数据中的特定属性说“id”的唯一性。


if (!this.admins.some(el => el.id === data.id)) {

  this.admins.push(data);

}


查看完整回答
反对 回复 2022-11-03
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

如果数据有一个唯一的 ID,你可以这样做:


let foundAdmin = this.admins.find(admin => admin.id == data.id);

if (foundAdmin == null)

    this.admins.push(data);

如果没有:


let foundAdmin = this.admins.find(admin => JSON.stringify(admin) === JSON.stringify(data));

if (foundAdmin == null)

    this.admins.push(data);


查看完整回答
反对 回复 2022-11-03
  • 2 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号