Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中使用循环函数声明变量x1、x2、…、x10?_Javascript_Loops_For Loop_Logic_Javascript Objects - Fatal编程技术网

如何在JavaScript中使用循环函数声明变量x1、x2、…、x10?

如何在JavaScript中使用循环函数声明变量x1、x2、…、x10?,javascript,loops,for-loop,logic,javascript-objects,Javascript,Loops,For Loop,Logic,Javascript Objects,我试图用JavaScript运行以下代码来完成以下任务:声明一系列基本上名称相同但后缀不同的变量,它们是一个整数,例如x1、x2、x3。。。等等 我是JavaScript新手(事实上,我对编码世界完全陌生)。下面的代码是我认为合乎逻辑的,但它不希望以我希望的方式执行 for(i=1;i),而您可以使用数组存储变量,并使用数字索引访问变量,如下所示: var students = []; // create an array and add student objects to it stude

我试图用JavaScript运行以下代码来完成以下任务:声明一系列基本上名称相同但后缀不同的变量,它们是一个整数,例如x1、x2、x3。。。等等

我是JavaScript新手(事实上,我对编码世界完全陌生)。下面的代码是我认为合乎逻辑的,但它不希望以我希望的方式执行


for(i=1;i),而您可以使用数组存储变量,并使用数字索引访问变量,如下所示:

var students = []; // create an array and add student objects to it
students[0] = new Student("Candice R.", "A");
students[1] = new Student("Robert K.", "C");
students[2] = new Student("Steven M.", "F");

for (i = 0; i < students.length; i++) {
  students[i].print();
}
var student=[];//创建一个数组并向其中添加student对象
学生[0]=新生(“坎迪斯R.,“A”);
学生[1]=新生(“罗伯特K.,“C”);
学生[2]=新生(“Steven M.,“F”);
对于(i=0;i
如果您真的想使用“student1”、“student2”、“student3”等名称,您可以这样做:

var students = {}; // create an empty object and add students as properties
students["student1"] = new Student("Candice R.", "A");
students["student2"] = new Student("Robert K.", "C");
students["student3"] = new Student("Steven M.", "F");

for (i = 1; i < 4; i++) {
  students["student" + i].print();
}
var students={};//创建一个空对象并将students添加为属性
学生[“学生1”]=新生(“坎迪斯R.,“A”);
学生[“学生2”]=新生(“罗伯特K.,“C”);
学生[“学生3”]=新生(“史蒂文M.,“F”);
对于(i=1;i<4;i++){
学生[“学生”+i].print();
}
要回答在循环中创建此类变量的问题,请执行以下操作:

var x = {};
for (i = 1; i < 11; i++) {
  x['x' + i] = 'variable' + i;
}
var x={};
对于(i=1;i<11;i++){
x['x'+i]='variable'+i;
}

正如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"));
现在,这三个学生一起存储在
学生
数组中。第一个学生在
学生[0]
处被访问,您的for循环应该能够轻松地对他们进行迭代


也许有更好的方法来定义这个学生数组,但这是对现有代码的一个非常接近的翻译。

使用这个方法,应该可以:

for (i = 1; i<4; i++) {
  window['student'+i].print();
  }

for(i=1;i变量的另一个名称是“identifier”。可以想到的每种编程语言都将名称限制为特定的字符组合。例如:
var x+i

解释器看到这一点,并且声明是JavaScript中标识符的无效字符集…因为它有+运算符。常见的限制是不以数字开头变量名。将第一个字符限制为$/\uu/[a-Z],然后是数字的混合

您需要的是使用数据结构,例如数组或哈希表

var x ={};
var array = []; 

for (i = 1; i<11; i++) {
    //Add a new object property called x1...x2... to the variable x.
   x["x" + i] = 'variable'+i;
   //Add a new string to the Array
   array.push('variable' + i);
}

//Iterate through the properties of the x object you just created
for(var k in x)
{
  //retrieve the item by using x["x1"]
   console.log(x[k]);
}

for(var i=0; i<array.length; i++)
{
   //Retrieve array item by index (starts with zero)
      console.log(array[i]);
}
var x={};
var数组=[];

对于(i=1;通常情况下,你不需要。你使用数组来存储数据序列。你能给我一个代码示例,你可以用它来做我想做的事情吗?我上面有两个示例,你介意告诉我你如何处理这两个问题吗?你只需要写出代码。这真的不比理解数组是如何工作的困难Javascript。如果你还不知道,那么这就是你在Javascript方面的下一个学习。感谢jfriend00的输入。我感谢你的建设性帮助。对象是一种有趣的方法。我喜欢它——对某些人来说可能更直观。我在多年前做OP想要的事情时学会了这个技巧,除了在我使用
window
建议使用@meteorite之类的对象。但我不喜欢污染全局范围,因此我对其进行了一些修改以获得此答案。最好只使用自己的数组,而不是创建大量全局数组。问题是如何访问这些变量。好的答案建议使用更好的技术,而不仅仅是回答文字问题是问如何做一个糟糕的实践。这取决于我的想法。在这种情况下,问题的作者很好奇他/她的技术为什么不起作用。因此,答案必须首先解决这个问题。然后,可以建议一个更好的/好的实践。解释为什么
var x+I='variable'+I;
不起作用没有错(非法的Javascript语法),但你没有这样做。相反,你建议了一种正确的语法方法来实现错误的解决方案。我自己没有投你反对票,但我想我应该解释一下,堆栈溢出本质上是为了“最佳答案”的竞争最好的答案通常需要做的不仅仅是字面上回答问题。他们需要理解实际问题并提供解决问题的最佳方案。谢谢@crgk。我相信这是编写代码最有效的方法。