#javascript
Вопрос:
У меня есть сложный тип FinalAnomalyStandardsDatatable :
export interface AnomalyStandardsDatatable {
target?: string;
msg?: string;
}
export interface FinalAnomalyStandardsDatatable {
projectTitle?: string;
targetObjects?: AnomalyStandardsDatatable[];
}
let listOfA: FinalAnomalyStandardsDatatable[] = [];
let listOfB: FinalAnomalyStandardsDatatable[] = [];
let anomalieProjectsA: AnomalyStandardsDatatable[] = [];
anomalieProjects.push({ target: '9999', msg: 'yo' });
anomalieProjects.push({ target: '8888', msg: 'waz' });
anomalieProjects.push({ target: '7777', msg: 'zup' });
listOfA.push({ projectTitle: 'P1', targetObjects: anomalieProjectsA });
listOfA.push({ projectTitle: 'P2', targetObjects: anomalieProjectsA });
let anomalieProjectsB: AnomalyStandardsDatatable[] = [];
anomalieProjects.push({ target: '9999', msg: 'yo' });
listOfB.push({ projectTitle: 'P1', targetObjects: anomalieProjectsB });
Я хотел бы удалить из listOfA дублирующуюся запись из listOfB, у которой один и тот же заголовок проекта и только одна цель.
Большое спасибо !
Ответ №1:
Это map()
/ filter()
комбинация должно сделать свое дело.
newListOfA = listOfA.filter(obj => {
return listOfB.filter(objB => objB.projectTitle.trim() == obj.projectTitle.trim() amp;amp; objB.targetObjects.join(",") == obj.targetObjects.join(",")).length === 0
})
let listOfA = [];
let listOfB = [];
let anomalieProjects = [];
let anomalieProjectsA = [];
anomalieProjects.push({
target: '9999',
msg: 'yo'
});
anomalieProjects.push({
target: '8888',
msg: 'waz'
});
anomalieProjects.push({
target: '7777',
msg: 'zup'
});
listOfA.push({
projectTitle: 'P1',
targetObjects: anomalieProjectsA
});
listOfA.push({
projectTitle: 'P2',
targetObjects: anomalieProjects
});
let anomalieProjectsB = [];
listOfB.push({
projectTitle: 'P1',
targetObjects: anomalieProjectsB
});
newListOfA = listOfA.filter(obj => {
return listOfB.filter(objB => objB.projectTitle.trim() == obj.projectTitle.trim() amp;amp; objB.targetObjects.join(",") == obj.targetObjects.join(",")).length === 0
})
console.log(newListOfA)
Комментарии:
1. Спасибо вам за вашу помощь ! Это действительно хорошо работает !