在 JavaScript 中动态创建数组

Creating an array dynamically in JavaScript

本文关键字:创建 数组 动态 JavaScript      更新时间:2023-09-26

好的,所以我正在尝试编写一些代码,这些代码将占用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 和编程很陌生!- 对不起

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

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

为了防止学生班超载。

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

你最好使用 console.log,它将信息写入 JavaScript Console。不同的浏览器在不同的地方实现控制台,但在 Chrome 中,控制台位于 View -> Developer -> JavaScript 控制台中。控制台.log不那么突兀,并且允许您比警报更彻底地检查对象。

使用 :

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]);
}