将数组中的对象添加到表

时间:2016-09-04 00:16:48

标签: javascript arrays

我一直试图绕过,如何将我的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之后使数组错误,或者我的数组仍为空。

提前致谢。

2 个答案:

答案 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();