循环中的变量名称

时间:2013-05-30 14:36:53

标签: javascript syntax

我怀疑我在基本的JavaScript语法中犯了一个错误。

var my_array = new Array(10);

for (var count=0; count<my_array.length; count++) {
var my_array+count = "This is a variable number "+count+".";
document.write(my_array+count);
}

我希望循环创建一系列应该被称为 my_array0,my_array1,my_array2 等的变量。上面的代码是我尝试这样做的方式,但它不起作用。在循环中命名变量的正确方法是什么?

编辑:我知道我可以使用my_array [count],但这不是我想要的。我需要的是能够在循环内命名变量,使用索引作为变量名称的一部分。

8 个答案:

答案 0 :(得分:5)

如果要设置数组的元素,请使用[]语法:

var my_array = new Array(10);

for (var count=0; count<my_array.length; count++) {
  my_array[count] = "This is a variable number "+count+".";
  document.write( my_array[count] );
}

此外,当仅指定数组的元素而不是数组本身时,请将var放在它前面!

答案 1 :(得分:2)

在循环中命名变量的正确方法是什么?你没有。

如果您只想要一个变量来保存该特定值,只需使用普通变量即可。如果您需要许多不同的值,请将其粘贴到数组或对象中。但是由于你已经拥有一个数组,所以这里很多,所以我真的不确定你想要实现的目标。

答案 2 :(得分:2)

这种模式有问题,数组似乎没必要;但是,这是一种方法:

var my_array = new Array(10);

for (var count = 0; count < my_array.length; count++) {
  window['my_array' + count] = "This is a variable number " + count + ".";
  document.write(window['my_array' + count]);
}

答案 3 :(得分:1)

如果之前的答案都不适合您,您可以随时使用eval()

var varName = 'my_array'
for (var count=0; count<my_array.length; count++) {
  eval(varName+count +" = This is a variable number "+count+".");
}

编辑:@Noah Freitas提供了更好的答案,而不使用eval()

答案 4 :(得分:0)

你应该使用数组。

var myarray = new Array();
myarray[0] = "1";
myarray[1] = "2";
myarray[2] = "3";

答案 5 :(得分:0)

你正在循环中重新定义my_array,而不是正确访问变量。尝试:

var my_array = new Array(10);

for (var count=0; count<my_array.length; count++) {
    my_array[count] = "This is a variable number "+count+".";
    console.log(my_array[count]);
}

JS Fiddle

答案 6 :(得分:0)

您无法在分配运算符(=)的左侧执行,只能分配。 javascript中的执行发生在右侧。

var my_array = new Array(10);
var var_hashmap = {}; // create a new object to hold our variables.

for (var count = 0; count < my_array.length; count++) {
    var key = "my_array" + count;
    var value = "This is a variable number " + count + ".";
    var_hashmap[key] = value;
    document.write(var_hashmap[key]);
};

答案 7 :(得分:0)

var my_array = new Array(10);

for (var count=0; count<my_array.length; count++)
{
    eval("var my_array" + count + " = 'This is a variable number'+count+' and the variable name is my_array'+count");

}

alert(my_array0);
alert(my_array1);
alert(my_array2);
alert(my_array3);
alert(my_array4);
alert(my_array5);
alert(my_array6);
alert(my_array7);
alert(my_array8);
alert(my_array9);

http://jsfiddle.net/pe97W/4/