Http Post Json - 数组

时间:2017-05-11 22:35:37

标签: arrays angular

我正在选择一个我希望在农村地区分组的医生名单。然后将选定的医生推入阵列并保存到数据库中。我能够选择并发布以保存在数据库中,但我发现有一些难以解决的问题。 我的问题是,当我选择医生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 => {

});

}

1 个答案:

答案 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
}