首页 > 解决方案 > 防止在Angular中的数组中推送重复对象

问题描述

我有一个子组件,它通过@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);
      }
    )
  });
}

所以我想确保在推送之前没有数组datathis.admins任何帮助,将不胜感激。

标签: javascriptangular

解决方案


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

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

推荐阅读