首页 > 解决方案 > 从第三个数组中的两个数组中过滤数据

问题描述

我试图取两个数组的补码,并用剩余的数据填充第三个数组。我有一个this.subjects对象和一个this.teacerData属性,我从中取出主题代码并将它们放在两个不同的数组中。现在我试图过滤掉两个数组中不相等的数据并将其放入第三个数组中。

subj: Subjects[];
teacherSubjects: string[];
data: string[];
filteredData: string[];
addsubject: AddTeacherSubject = new AddTeacherSubject();
teacherData: TeacherUpdateDataDto = new TeacherUpdateDataDto();

ngOnInit() {
this._curriculumService.getSubject(this.appSession.tenant.tenancyName)
.finally(() => { this.saving = false;})
.subscribe((result: listResultDtoOfSubjectDto) => {
  this.subjects = result.items;
  this.teacherSubjects = this.subjects.map(a => a.code);
  console.log("All Subjects =" + this.teacherSubjects);
 })

this._teacherService.GetTeacherUpdateData(this.appSession.tenant.tenancyName, 
this._sharedService.getMessage())
.finally(()=> { this.saving = false;})
.subscribe((result: TeacherUpdateDataDto) => {
  this.teacherData = result;
  this.subj = this.teacherData.subject;
  this.data = this.subj.map(a => a.code);
})
}

this.subjects DTO

(3) [subjectlistDto, subjectlistDto, subjectlistDto]
0 :
 subjectlistDto {name: "Mathematics", code: "mathematics", classCode: "bscs", 
 classNAME: "BSCS"}
1 :
 subjectlistDto {name: "English", code: "english", classCode: "bscs", 
 classNAME: "BSCS"}
2 :
 subjectlistDto {name: "Islamiat", code: "islamiat", classCode: "bscs", 
 classNAME: "BSCS"}

this.teacherData Dto

subject:Array(2)
0:
{code: "mathematics"}
1:
{code: "english"}

我需要filteredSubjects 数组中的过滤数据。我怎样才能做到这一点?

标签: angulartypescript

解决方案


我是这样做的

刚刚从 ngOnInit 和

Data(subjec: string[], compar: string[]) {
this.filteredData = [];
for(var i = 0; i< subjec.length; i++) {
  if(compar.indexOf(subjec[i]) === -1){
    this.filteredData.push(subjec[i]);
  }
}
for(var j = 0; j<compar.length; j++) {
  if(subjec.indexOf(compar[j]) === -1){
    this.filteredData.push(compar[j]);
  }
}
return this.filteredData;

}

推荐阅读