Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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中将数据排序到表中?_Javascript_Html_Json - Fatal编程技术网

如何在javascript中将数据排序到表中?

如何在javascript中将数据排序到表中?,javascript,html,json,Javascript,Html,Json,我有这样的数据: { "date": "2018-07-01", "hotel": "Hotel1", "room": "H1Room1", "qty": 3 }, { "date": "2018-07-02", "hotel": "Hotel1", "room": "H1Room1", "qty": 3 }, { "date": "2018-07-03", "hotel": "Hotel1", "r

我有这样的数据:

{
    "date": "2018-07-01",
    "hotel": "Hotel1",
    "room": "H1Room1",
    "qty": 3   
},
{
    "date": "2018-07-02",
    "hotel": "Hotel1",
    "room": "H1Room1",
    "qty": 3 
},
{
    "date": "2018-07-03",
    "hotel": "Hotel1",
    "room": "H1Room1",
    "qty": 2
},
{
    "date": "2018-07-01",
    "hotel": "Hotel1",
    "room": "H1Room2",
    "qty": 3   
},
{
    "date": "2018-07-02",
    "hotel": "Hotel1",
    "room": "H1Room2",
    "qty": 2   
},
{
    "date": "2018-07-01",
    "hotel": "Hotel2",
    "room": "H2Room1",
    "qty": 2 
},
{
    "date": "2018-07-02",
    "hotel": "Hotel2",
    "room": "H2Room1",
    "qty": 1 
}
我想用Javascript把它放到一张桌子上

输出结果如下:
酒店|房间| 2018-07-01 | 2018-07-02 | 2018-07-03
酒店1 | H1房间1 | 3 | 3 | 2
酒店1 | H1房间2 | 2 | 1
酒店2 | H2室1 | 2 | 1

如果可能,使用for循环。

var HotelDetails=[{
“日期”:“2018-07-01”,
“酒店”:“酒店1”,
“房间”:“H1Room1”,
“数量”:3
},
{
“日期”:“2018-07-02”,
“酒店”:“酒店1”,
“房间”:“H1Room1”,
“数量”:3
},
{
“日期”:“2018-07-03”,
“酒店”:“酒店1”,
“房间”:“H1Room1”,
“数量”:2
},
{
“日期”:“2018-07-01”,
“酒店”:“酒店1”,
“房间”:“H1Room2”,
“数量”:3
},
{
“日期”:“2018-07-02”,
“酒店”:“酒店1”,
“房间”:“H1Room2”,
“数量”:2
},
{
“日期”:“2018-07-01”,
“酒店”:“酒店2”,
“房间”:“H2Room1”,
“数量”:2
},
{
“日期”:“2018-07-02”,
“酒店”:“酒店2”,
“房间”:“H2Room1”,
“数量”:1
}]
$(文档).ready(函数(){
CreateHTMLTable();
});
var DateArray=[];
函数CreateHTMLTable()
{
var ResultHTML=“”;
var TableHeader=“HotelRoom”;
var TableRow=“”;
for(HotelDetails中的变量k)
{
if(HotelDetails[k].date!=“”&&!CheckDateArray(HotelDetails[k].date))
{
TableHeader+=“”+HotelDetails[k]。日期+“”;
推送(HotelDetails[k].date);
}        
}    
结果tml+=TableHeader+TableRow+“”;
$('Hotel#u Details')。追加(ResultHTML);
}
函数CheckDateArray(datestr)
{
if(DateArray.indexOf(datestr)>-1)
返回true;
其他的
返回false;
}

一种纯粹的VanillaJS方式

试试这个:

var json\u数据=[
{
“日期”:“2018-07-01”,
“酒店”:“酒店1”,
“房间”:“H1Room1”,
“数量”:3
},
{
“日期”:“2018-07-02”,
“酒店”:“酒店1”,
“房间”:“H1Room1”,
“数量”:3
},
{
“日期”:“2018-07-03”,
“酒店”:“酒店1”,
“房间”:“H1Room1”,
“数量”:2
},
{
“日期”:“2018-07-01”,
“酒店”:“酒店1”,
“房间”:“H1Room2”,
“数量”:3
},
{
“日期”:“2018-07-02”,
“酒店”:“酒店1”,
“房间”:“H1Room2”,
“数量”:2
},
{
“日期”:“2018-07-01”,
“酒店”:“酒店2”,
“房间”:“H2Room1”,
“数量”:2
},
{
“日期”:“2018-07-02”,
“酒店”:“酒店2”,
“房间”:“H2Room1”,
“数量”:1
}
];
var行=”;
for(json_数据中的项){
行+=“”+
“”+json_数据[项目]。日期+“”+
“”+json_数据[项目]。酒店+“”+
“”+json_数据[项]。文件室+“”+
“”+json_数据[项目]。数量+“”+
"";
}
document.getElementById(“mytable”).innerHTML=行


到目前为止,您尝试了什么?没有,只是开始而已,需要使用for循环。我真的很难思考这个问题。我真的是一个初学者。@HitoriZetsubo,我在回答中添加了一个片段。如果有帮助,请将其标记为答案。您可以运行代码段来检查表。@Hitori Zetsubo,检查这个代码段。是的,它很好而且简单。但这与我将要提出的要求不同。那么请提供您适当的要求。@Hitorizet。日期也是header@HitoriZetsubo,我更新了脚本,日期用作标题。是否有方法将酒店和房间合并到相应的日期?