我试图在 Angualar 8 的 attachmentForms
列表中找到所有重复项。我搜索了一些帖子,下面是我可以想出的代码,但我仍然无法设置isDuplicate
为 true
名称:Document1
。感谢您对此提供的任何帮助。
export interface AttachmentForm {
name: string;
isDuplicate: boolean;
}
ngOnInit() {
this.attachmentForms = [
{name: 'Document1', isDuplicate: false},
{name: 'Document2', isDuplicate: false},
{name: 'Document1', isDuplicate: false},
{name: 'Document3', isDuplicate: false},
];
this.findDuplicates() ;
}
findDuplicates() {
const newArr: AttachmentForm[] = [];
this.attachmentForms.forEach((item, index) => {
if (newArr.findIndex(i => i.name === item.name) === -1) {
item.isDuplicate = false;
} else {
item.isDuplicate = true;
}
newArr.push(item);
});
this.attachmentForms = newArr;
}
最佳答案
尝试将 findDuplicates()
更改为 this.findDuplicates()
ngOnInit() {
this.attachmentForms = [
{ name: 'Document1', isDuplicate: false },
{ name: 'Document2', isDuplicate: false },
{ name: 'Document1', isDuplicate: false },
{ name: 'Document3', isDuplicate: false },
];
this.findDuplicates();
}
findDuplicates() {
const newArr: AttachmentForm[] = [];
this.attachmentForms.forEach((item) => {
if (this.attachmentForms.filter(i => i.name === item.name).length > 1) {
item.isDuplicate = true;
} else {
item.isDuplicate = false;
}
newArr.push(item);
});
this.attachmentForms = newArr;
}
这是一个 Stackblitz 示例:https://stackblitz.com/edit/angular-nl8zxc
关于javascript - 在 Angular 8 中查找数组中的所有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58917445/