我正在选择一个我希望在农村地区分组的医生名单。然后将选定的医生推入阵列并保存到数据库中。我能够选择并发布以保存在数据库中,但我发现有一些难以解决的问题。 我的问题是,当我选择医生1和医生2并发布到我的服务时,发送到我服务的参数被计为3.即医生1,医生2,医生2.为什么医生2被复制?
选择医生
selectDoctors(Doctors){
Doctors.listed = (Doctors.listed) ? false : true;
this.deptList = Doctors
}
提交阵列中选定医生组
Doctors: Doctors[] = [];
hospital = {
hospital_name : "",
details : [{
id: "",
ward: "",
}]
}
//submit data into array
Object.keys(this.Doctors).filter(key => this.Doctors[key].selected)
.forEach(key => {
this.hospital.details['0'].id = this.Doctors[key].id
this.hospital.details['0'].ward =this.Doctors[key].ward
this.groups.members.push(this.Doctors.['0']);
}
this.http.categorizeDepartment(this.groups)
.subscribe(data => {
});
}
答案 0 :(得分:0)
看起来这里有一些奇怪的突变和不必要的方法,结果是不可预测的。如果您只想将选定的医生放入一个小组,您可以这样做:
this.groups.members = [
...this.groups.members,
this.Doctors.filter(doctor => doctor.selected)
];
如果您还想将医生的信息添加到hospital.details数组中的第一项,您也可以添加:
let selectedDoctors = this.Doctors.filter(doctor => doctor.selected);
this.groups.members = [...this.groups.members, selectedDoctors];
for (let doctor of selectedDoctors) {
this.hospital.details['0'].id = doctor.id
this.hospital.details['0'].ward = doctor.ward
}