在JavaScript中动态创建数组

时间:2013-11-16 17:50:46

标签: javascript arrays multidimensional-array dynamic-arrays

好的,所以我试着编写一些代码,每个教室需要x个教室和x个学生,然后将两个学生从不同的教室中随机配对。

听起来很简单,对! 我已经能够在页面上动态创建x个输入元素,并且所有输入元素都可以工作,直到我尝试为x个元素创建数组。

我应该尝试不同的方法吗?

我的代码工作到此为止:

 for (i = 0; i < classSize; i++) {
     var arrField = container2.appendChild(document.createElement('fieldset'));
     var arrDiv = arrField.appendChild(document.createElement('div'));
     arrDiv.id = "div" + (i + 1);
     var studentArr = "studentArr" + (i + 1);
     alert(studentArr); //returns "studentArr1" "studentArr2", etc.

     for (n = 0; n < arrSize; n++) {
         studentArr = new student();
         studentArr[(n + 1)] = new student(document.getElementById("name" + (n + 1)).value, document.getElementById("email" + (n + 1)).value, document.getElementById("phone" + (n + 1)).value);
         alert(studentArr[(n + 1)].name);
         alert(studentArr[(n + 1)].email);
         alert(studentArr[(n + 1)].phone);
     }
 }

仅供参考 - 我对JavaScript和编程非常陌生! - 抱歉

2 个答案:

答案 0 :(得分:0)

使用:

array.push();

示例:

// initialize array
var arr = [
    "Hi",
    "Hello",
    "Bonjour"
];

// append new value to the array
arr.push("Hola");

// display all values
for (var i = 0; i < arr.length; i++) {
    alert(arr[i]);
}

答案 1 :(得分:0)

您是否在别处定义了学生对象构造函数?就目前而言,student()看起来像是一个数组和一个具有名称,电子邮件等属性的对象。你应该使用类似的东西

studentArray = []
studentArray.push(new student(name,email,etc.))

为了防止学生班级超载。

此外,另外,在单独的说明中,除非您真的会说“警报!”,否则不应使用警报。它们至少有三个原因存在问题: 1)他们真的很讨厌 2)alert(object)将显示类似[Object Object]之类的东西,用于比简单数据结构(如字符串)更复杂的东西 3)它们阻止在页面上运行任何其他内容。

最好使用console.log,它将信息写入JavaScript控制台。不同的浏览器在不同的位置实现控制台,但在Chrome中,控制台位于View - &gt;开发者 - &gt; JavaScript控制台。 console.log不那么突兀,允许你比警报更彻底地检查对象。