Javascript 如何将2个项目推送到一个数组中
第27行显示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
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部分应该写些什么吗?