Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将2个项目推送到一个数组中_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 如何将2个项目推送到一个数组中

Javascript 如何将2个项目推送到一个数组中,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,第27行显示 var doctors = [ new Doctor("Doc A","A1"), new Doctor("Doc B","A1"), new Doctor("Doc C","A3") ]; 这里,Doc A、Doc B和Doc C是硬编码的。它们也是敲除绑定: ko.applyBindings( new Patient("idValue", "nameValue", "addressValue", "Female", "usernameVal

第27行显示

var doctors = [
    new Doctor("Doc A","A1"), 
    new Doctor("Doc B","A1"), 
    new Doctor("Doc C","A3")
];
这里,
Doc A
Doc B
Doc C
是硬编码的。它们也是敲除绑定:

ko.applyBindings(
    new Patient("idValue", "nameValue", "addressValue", "Female", "usernameValue",
                "passwordValue", "emailValue", "mobileValue", "imgFileValue", 
                "imgSrcValue", "imagePathValue", "useridValue", "A3")
);
无论传递什么
a1
a2
a3
都会选择相应的文档。例如,我在绑定中传递
a3
,因此我选择了
docc

考虑到这一点:

{
  "doctors": [
    {
      "id": 8,
      "schedules": [
        {
          "id": 8,
          "totime": "11:17",
          "dayId": 2,
          "location": "Somajiguda",
          "fromtime": "10:17",
          "hospitalId": 5,
          "day": "Tuesday",
          "hospital": "Yashoda"
        }
      ],
      "username": "d1",
      "degree": "DA(Anaesthesia)",
      "email": "1@2.com",
      "imagePath": "",
      "department": "Bio-Chemistry",
      "name": "d1",
      "userid": 51,
      "gender": "Male",
      "mobile": "1234567900"
    },
    {
      "id": 10,
      "schedules": [
        {
          "id": 10,
          "totime": "12:35",
          "dayId": 2,
          "location": "Somajiguda",
          "fromtime": "11:35",
          "hospitalId": 5,
          "day": "Tuesday",
          "hospital": "Yashoda"
        }
      ],
      "username": "d3",
      "degree": "BDS",
      "email": "d3@d3.com",
      "imagePath": "",
      "department": "Bio-Chemistry",
      "name": "d3",
      "userid": 56,
      "gender": "Male",
      "mobile": "1234567890"
    },
    {
      "id": 1,
      "schedules": [
        {
          "id": 1,
          "totime": "12:55",
          "dayId": 1,
          "location": "Somajiguda",
          "fromtime": "11:55",
          "hospitalId": 5,
          "day": "Monday",
          "hospital": "Yashoda"
        }
      ],
      "username": "doctor",
      "degree": "BDS",
      "email": "",
      "imagePath": null,
      "department": "Critical Care",
      "name": "doctor",
      "userid": 4,
      "gender": "Male",
      "mobile": "1234567890"
    },
    {
      "id": 7,
      "schedules": [
        {
          "id": 7,
          "totime": "11:17",
          "dayId": 2,
          "location": "Somajiguda",
          "fromtime": "11:17",
          "hospitalId": 5,
          "day": "Tuesday",
          "hospital": "Yashoda"
        }
      ],
      "username": "donald",
      "degree": "DA(Anaesthesia)",
      "email": "donald@doctor.com",
      "imagePath": "",
      "department": "Bio-Chemistry",
      "name": "donald",
      "userid": 47,
      "gender": "Male",
      "mobile": "1234567989"
    },
    {
      "id": 6,
      "schedules": [
        {
          "id": 6,
          "totime": "11:15",
          "dayId": 1,
          "location": "Somajiguda",
          "fromtime": "11:15",
          "hospitalId": 5,
          "day": "Monday",
          "hospital": "Yashoda"
        }
      ],
      "username": "john",
      "degree": "BDS",
      "email": "john@john.com",
      "imagePath": null,
      "department": "Anesthesiology",
      "name": "john",
      "userid": 46,
      "gender": "Male",
      "mobile": "1234567890"
    },
    {
      "id": 5,
      "schedules": [
        {
          "id": 5,
          "totime": "13:11",
          "dayId": 2,
          "location": "Somajiguda",
          "fromtime": "12:11",
          "hospitalId": 5,
          "day": "Tuesday",
          "hospital": "Yashoda"
        }
      ],
      "username": "sknayak",
      "degree": "BDS",
      "email": "sknayak@sknayak.com",
      "imagePath": "",
      "department": "Anesthesiology",
      "name": "sknayak",
      "userid": 38,
      "gender": "Male",
      "mobile": "1234567890"
    },
    {
      "id": 2,
      "schedules": [
        {
          "id": 2,
          "totime": "16:26",
          "dayId": 6,
          "location": "Somajiguda",
          "fromtime": "15:26",
          "hospitalId": 5,
          "day": "Saturday",
          "hospital": "Yashoda"
        }
      ],
      "username": "drsukant",
      "degree": "BDS",
      "email": "",
      "imagePath": null,
      "department": "Anesthesiology",
      "name": "sukant",
      "userid": 9,
      "gender": "Male",
      "mobile": "1234567890"
    }
  ]
}
通过
GET
请求获得:

$.ajax({
    type: "GET", 
    url: projectUrl+"getDoctors",  
    dataType:"json",
    jsonp: true,
    async:false ,
    success: function (data) {
        $.each(data.doctors, function(index, currPat) {
           console.log(currPat.username);
       });    
    }
});
我想用JSON中的
用户名
ID
来代替
'Doc A',a1'
'Doc B',a2'
等。。。作为
var医生=…
的替代品

在AJAX的成功中,我尝试了:

success: function (data) {
    $.each(data.doctors, function(index, currPat) {
        new Doctors(currPat.id,currPat.username);
    });    
}

可能是这样的

var doctors = [];

$.ajax({
type: "GET", 
url: projectUrl+"getDoctors",  
dataType:"json",
jsonp: true,
async:false ,
success: function (data) {
    $.each(data.doctors, function(index, currPat) {
       doctors.push[currPat.id,currPat.username];
   });    
}
});
你的最终结果应该是这样的:

doctors = [[id1,name1],[id2,name2], ...... [id10,name10]]
doctors.push({id:currPat.id,name:currPat.username});
doctors = [{id:id1,name:name1},{id:id2,name:name2},......,{id:id10,name:name10}]
也可以使用如下格式:

doctors = [[id1,name1],[id2,name2], ...... [id10,name10]]
doctors.push({id:currPat.id,name:currPat.username});
doctors = [{id:id1,name:name1},{id:id2,name:name2},......,{id:id10,name:name10}]
那么你的最终结果应该是这样的:

doctors = [[id1,name1],[id2,name2], ...... [id10,name10]]
doctors.push({id:currPat.id,name:currPat.username});
doctors = [{id:id1,name:name1},{id:id2,name:name2},......,{id:id10,name:name10}]
*我个人更喜欢格式2

编辑使用JQuery,
.map()

比上面提到的要简短一点。

看起来你可以做你需要的事情

success: function (data) {
    doctors = $.map(data.doctors, function(doctor) {
        new Doctor(doctor.id, doctor.username);
    });    
}

考虑一下您的医生功能:

// Doctor constructor with name and username properties
var Doctor = function(nameParam, usernameParam){
    this.name = nameParam;
    this.username = usernameParam;
};
然后在AJAX成功函数上填充所有接收的医生,如:

$.each(jsonStr.doctors, function(index, currPat) {
     var doc = new Doctor(currPat.name,currPat.username);
     doctors.push(doc);
 });
alert(JSON.stringify(doctors));

工作

谢谢你的回答,+1.我会检查你的方式哦,耶。。我忘记了
.map()
谢谢你的回答,+1。但是你能告诉我在成功的ajax部分应该写些什么吗?