如何在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,我更新了脚本,日期用作标题。是否有方法将酒店和房间合并到相应的日期?