问题描述
如何从对象数组生成HTML表?
我尝试使用以下代码获取对象对象错误。
idata:[{"slot":"10:00-11:00","isBooked":false},{"slot":"11:00-12:00",{"slot":"12:00-13:00",{"slot":"13:00-14:00",{"slot":"14:00-15:00",{"slot":"15:00-16:00",{"slot":"16:00-17:00",{"slot":"17:00-18:00",{"slot":"18:00-19:00","isBooked":false}]
<html>
<head>
<base target="_top">
</head>
<body>
<? var data = idata ?>
<table>
<tr>
<th>Time SLOT</th>
<th>Status</th>
</tr>
<? for (var i = 0; i < data.length; i++) { ?>
<tr>
<? for (var j = 0; j < data[i].length; j++) { ?>
<td><?= data[i][j] ?></td>
<? } ?>
</tr>
<? } ?>
</table>
</body>
</html>
解决方法
最简单的解决方案是将for (var j = 0; j < data[i].length; j++)
替换为for (var j in data[i])
var data =[{"slot":"10:00-11:00","isBooked":false},{"slot":"11:00-12:00",{"slot":"12:00-13:00",{"slot":"13:00-14:00",{"slot":"14:00-15:00",{"slot":"15:00-16:00",{"slot":"16:00-17:00",{"slot":"17:00-18:00",{"slot":"18:00-19:00","isBooked":false}];
for (var i = 0; i < data.length; i++) {
for (var j in data[i]) {
console.log(data[i][j])
}
}