我试图在 JavaScript 中运行以下代码来完成以下任务:声明一系列基本上具有相同名称但仅后缀不同的变量,后缀是一个整数,例如x1,x2,x3...等等。
我是 JavaScript 新手(事实上,我对编码世界完全陌生)。以下代码是我认为符合逻辑的代码,但它不想按照我想要的方式执行。
for (i = 1; i<11; i++) {
var x+i = 'variable'+i;
}
我还有点想做的事...
例如,我制作了如下所示的构造,然后继续创建自定义对象(student1、student2、student3)。我的最终目标是按顺序打印出学生的姓名和对其成绩的评论。我不想编写为每个学生打印出来的函数,而是编写一个循环来使这个过程更加高效。然而,事实证明,尝试做到这一点有点困难。这是代码:
var grade = function(grade) {
switch (grade) {
case "A": " could not do any better. Well done";
break;
case "C": " had average performance. There's room to improve.";
break;
case "F": ", an unfortunate result. Will have to try again next year.";
break;
default: ".";
break;
}
};
function Student(name, sgrade) {
this.name = name;
this.grade = sgrade;
this.print = function() {
console.log(this.name+grade(this.grade));
};
}
var student1 = new Student("Candice R.", "A");
var student2 = new Student("Robert K.", "C");
var student3 = new Student("Steven M.", "F");
for (i = 1; i<4; i++) {
student+i.print();
}
/* student[i].print() also doesn't work */
有人可以告诉我我不完全理解的 JavaScript 逻辑不允许执行上述内容,还有其他方法吗?
最佳答案
正如 jfriend00 所说,您正在寻找的 JavaScript 片段是数组。
每当您发现自己向变量名称添加数字时,这都表明您可以将它们放入数组中。
所以你可以替换这个:
var student1 = new Student("Candice R.", "A");
var student2 = new Student("Robert K.", "C");
var student3 = new Student("Steven M.", "F");
这样:
var students = [];
students.push(new Student("Candice R.", "A"));
students.push(new Student("Robert K.", "C"));
students.push(new Student("Steven M.", "F"));
现在,这三个学生都一起存储在 students
数组中。第一个学生是在 students[0]
处访问的,您的 for 循环应该能够轻松地迭代它们。
也许有更好的方法来定义这组学生,但这是对现有代码的非常接近的翻译。
关于javascript - 如何在 JavaScript 中使用循环函数声明变量 x1、x2、...、x10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35371651/