我一直试图绕过,如何将我的Student对象添加到我的数组中。一旦我解决了这个问题,我就试着在一个html文件中显示数组内部的内容。
学生对象:
var Student = function (fullName, email, phone, category, groupID) {
this.fullName = fullName;
this.email = email;
this.phone = phone;
this.category = category;
this.groupID = groupID;
};
studentArray:
var studentArray = new Array(Student);
makeTable功能:
function makeTable() {
var student1 = new Student("Waw","waaw","awaw","waaw","waaw");
studentArray.push(student1);
document.write("<table>");
document.write("<thead><tr><th>Full Name</th><th>Email</th><th>Phone</th><th>Category</th><th>Group</th></tr></thead>");
document.write("<tbody>");
for(i = 0; i < studentArray.length; i++){
document.write("<tr><td>" + studentArray[i].fullName +"</td><td>" + studentArray[i].email +"</td><td>" + studentArray[i].phone +"</td><td>" + studentArray[i].category +"</td><td>" + studentArray[i].groupID +"</td></tr>");
}
document.write("</tbody>");
document.write("</table>");
}
Html文件:
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../script/scripts.js" type="text/javascript"></script>
</head>
<body>
<script>
makeTable();
</script>
</body>
</html>
输出:
http://i.imgur.com/K9UWIyx.png
我通常用Java编写常规程序,但是,只是因为我可以想象这不起作用,就好像我在将student1插入studentArray之后使数组错误,或者我的数组仍为空。
提前致谢。
答案 0 :(得分:1)
javascript是一种弱类型语言(more about language sthrength)
这一行你没有将'Stundent'定义为你的数组的类型,但是你将一个名为Student的对象(在你的上下文中不存在)推入你的数组'studentArray'中。意思是你将undefined或null推入stundenArray。
var studentArray = new Array(Student);
如果你改成它,你将创建一个空数组
var studentArray = new Array();
然后它应该工作
因为某些浏览器会在以下行上抛出异常,因为编译器不知道指向null的对象上的属性
document.write("<tr><td>" + studentArray[i].fullName +"</td><td>" + studentArray[i].email +"</td><td>" + studentArray[i].phone +"</td><td>" + studentArray[i].category +"</td><td>" + studentArray[i].groupID +"</td></tr>");
答案 1 :(得分:1)
您正在将Student
函数推送到数组中,您不需要这样做。它最终会返回undefined
值。
简单地替换
var studentArray = new Array(Student);
与
var studentArray = new Array();