javascript - 防止在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);
}
)
});
}
所以我想确保在推送之前没有数组data
。this.admins
任何帮助,将不胜感激。
解决方案
检查数据中的特定属性说“id”的唯一性。
if (!this.admins.some(el => el.id === data.id)) {
this.admins.push(data);
}
推荐阅读
- kendo-ui-vue - kendo-grid-column 可过滤道具上的 Kendo vue 包装器错误
- jasmine - Jasmine spyOn 迁移到 Webpack4 后失败
- angular - ngModel 为不同的字段显示相同的值
- sql - 从某个组中获取最后一个值(Oracle)
- reactjs - Native Base 两个头文件
- php - 动态 PHP 表过滤和排序
- extjs - 将值从一个视图发送到另一个 ExtJS 4
- javascript - 单击 SVG 后如何与另一个 SVG 交互
- php - wp_kses 清理正在删除有效的字体系列名称
- javascript - Firefox 桌面浏览器的画布中断,Chrome 桌面只有在加载 cookie 时才能正常工作