我正在处理这个项目,我需要从学校的时间表中获取所有空房间,我可以从 JSON 响应中获取数据。
JSON 响应如下所示:
{
"status": "success",
"reservations": [
{
"id": "19598",
"subject": "subjectName",
"modifiedDate": "2017-04-24T06:04:42",
"startDate": "2017-04-24T08:00:00",
"endDate": "2017-04-24T09:45:00",
"resources": [
{
"id": "795",
"type": "student_group",
"code": "groupCode",
"name": "groupName"
},
{
"id": "599",
"type": "student_group",
"code": "groupCode",
"name": "groupName"
},
{
"id": "2989",
"type": "realization",
"code": "",
"name": ""
},
{
"id": "41",
"type": "room",
"code": "A340.1",
"parent": {
"id": "2",
"type": "building",
"code": "A",
"name": "buildingA"
},
"name": "A340.1"
}
],
"description": ""
},
{
"id": "27832",
"subject": "subjectName",
"modifiedDate": "2017-04-24T06:04:42",
"startDate": "2017-04-24T08:00:00",
"endDate": "2017-04-24T09:45:00",
"resources": [
{
"id": "52",
"type": "room",
"code": "A450.3",
"parent": {
"id": "2",
"type": "building",
"code": "A",
"name": "buildingA"
},
"name": "A450.3"
},
{
"id": "2409",
"type": "student_group",
"code": "groupCode",
"name": "groupName"
},
{
"id": "3401",
"type": "realization",
"code": "",
"name": ""
}
],
""
},
{
"id": "10945",
"subject": "subjectName",
"modifiedDate": "2017-04-24T06:04:43",
"startDate": "2017-04-24T08:00:00",
"endDate": "2017-04-24T12:00:00",
"resources": [
{
"id": "289",
"type": "student_group",
"code": "groupCode",
"name": "gorupName"
},
{
"id": "2454",
"type": "realization",
"code": "",
"name": ""
},
{
"id": "19",
"type": "room",
"code": "A510.4",
"parent": {
"id": "2",
"type": "building",
"code": "A",
"name": "buildingA"
},
"name": "A510.4"
}
],
"description": ""
},
{
"id": "27647",
"subject": "subjectName",
"modifiedDate": "2017-04-24T06:04:39",
"startDate": "2017-04-24T08:00:00",
"endDate": "2017-04-24T21:00:00",
"resources": [
{
"id": "47",
"type": "room",
"code": "A420.6",
"parent": {
"id": "2",
"type": "building",
"code": "A",
"name": "buildingA"
},
"name": "A420.6"
}
],
"description": ""
},
{
"id": "20630",
"subject": "subjectName",
"modifiedDate": "2017-04-24T06:04:33",
"startDate": "2017-04-24T08:00:00",
"endDate": "2017-04-24T10:45:00",
"resources": [
{
"id": "25",
"type": "room",
"code": "A130.1",
"parent": {
"id": "2",
"type": "building",
"code": "A",
"name": "buildingA"
},
"name": "A130.1"
},
{
"id": "26",
"type": "room",
"code": "A130.3",
"parent": {
"id": "2",
"type": "building",
"code": "A",
"name": "buildingA"
},
"name": "A130.3"
},
{
"id": "2997",
"type": "realization",
"code": "",
"name": ""
},
{
"id": "2268",
"type": "student_group",
"code": "groupCode",
"name": "gorupName"
}
],
"description": ""
},
{
"id": "19874",
"subject": "subjectName",
"modifiedDate": "2017-04-24T06:04:37",
"startDate": "2017-04-24T08:00:00",
"endDate": "2017-04-24T09:45:00",
"resources": [
{
"id": "28",
"type": "room",
"code": "A140.2",
"parent": {
"id": "2",
"type": "building",
"code": "A",
"name": "buildingA"
},
"name": "140.2"
},
{
"id": "3033",
"type": "realization",
"code": "",
"name": ""
},
{
"id": "2338",
"type": "student_group",
"code": "groupCode",
"name": "groupname"
}
],
"description": ""
}
]
}
回复要长得多,但为了简单起见,我将其缩短了。
所以我通过以下命令运行了这个 JSON 响应JSON.Parse()
and for-loops
获取数组中当前正在使用的所有房间;
var rooms = [];
for (var i = 0; i < json.reservations.length; i++) {
if(json.reservations[i].resources != null){
for(var j = 0; j < json.reservations[i].resources.length; j++){
var resource = json.reservations[i].resources[j];
if(resource.type === "room"){
if(rooms.indexOf("code"))
rooms.push(resource.code);
}
}
}
}
}
我得到了当时正在使用的所有房间,例如您可以从上面的回复中看到;
"startDate": "2017-04-24T08:00:00",
"endDate": "2017-04-24T09:45:00",
"type": "room",
"code": "A340.1",
但问题是,我正在使用的 API 目前不包含任何空房间的数据,所以我还为buildingA
看起来像这样:
var buildingA = ['A120.3', 'A130.1', 'A130.3', 'A140.1', 'A140.2', 'A140.4', 'A250.1', 'A240.4', 'A240.2', 'A220.5', 'A220.3',
'A220.1', 'A210.2', 'A320.2', 'A320.6', 'A320.7', 'A320.8', 'A340.1', 'A340.2', 'A350.1', 'A350.3', 'A440.5', 'A450.3',
'A450.1', 'A440.4', 'A440.2', 'A420.6', 'A420.5', 'A420.4', 'A420.2', 'A510.2', 'A520.5', 'A510.4', 'A520.6', 'A520.7',
'A540.1', 'A540.2'];
有什么方法可以将这个数组与var rooms = [];
数组以便我可以打印所有空房间而不是正在使用的房间?
至于结果,我必须查看空房间的名称以及空房间的时间(如果可能的话),但主要的是获取房间名称,例如;
A340.1 - 1 hour 45 minutes
A440.4 - 2 hours
提前致谢。