如何将变量附加到JavaScript中的另一个变量?

时间:2010-03-06 08:17:17

标签: javascript loops append

我正在运行一个循环,我每次循环运行时都会尝试创建一个变量,并在变量名末尾附加一个计数器的数字。

这是我的代码:

var counter = 1;
while(counter < 4) {
  var name+counter = 5;
  counter++;
}

因此循环运行后应该有3个名为name1,name2和name3的变量。如何将计数器编号附加到我在循环中创建的变量的末尾?

8 个答案:

答案 0 :(得分:4)

您正在寻找阵列:

var names = Array();
// ...
names[counter] = 5;

然后你会得到三个名为[0],名字[1]和名字[2]的变量。请注意,传统的做法是从0开始而不是1。

答案 1 :(得分:2)

您可以使用关联数组

var mycount=new Array();
var count=1;
while (count < 4) {
   mycount[count++]=5;
}

答案 2 :(得分:2)

var counter = 1,
    obj = {};
while ( counter < 4 )
  obj['name'+counter++] = 5;

// obj now looks like this
obj {
    name1: 5,
    name2: 5,
    name3: 5
}

// the values may now be accessed either way
alert(obj.name1) && alert(obj['name2']);

答案 3 :(得分:2)

使用数组。


假设您在浏览器中运行且nameXXX是全局变量,请使用

window["name" + counter] = 5;

答案 4 :(得分:1)

如果使用eval,请不要在循环内使用它,而是使用循环来构建单个字符串 你可以一次运行eval。

var counter= 1, name= 'name', evlstring= 'var ';
while(counter < 5){
    evlstring+= name+counter+'=5,';
    ++counter;
}
evlstring= evlstring.slice(0, -1);

//尾随逗号会从eval中抛出错误

eval(evlstring);

alert(name3);

我真的不相信评估的未来 - 用eval优化那些漂亮的新javascript引擎真的很难, 而且我确信那些程序员希望看到它死掉,或者至少把它的范围剪掉。

如果你坚持使用全局变量,你可以这样做:

var counter= 1, name= 'name';
while(counter < 5){
    window[name+counter]=5;
    ++counter;
}

alert(name3)

答案 5 :(得分:0)

使用eval功能,它会做出事情

答案 6 :(得分:0)

  

示例代码,它将创建name1,name2,name3变量。

var count=1;
while ( count < 4 )
{
eval("var name" + count + "=5;");
count++;
}

alert ( name1 ) ;
alert ( name2 ) ;
alert ( name3 ) ;

答案 7 :(得分:-1)

试试这个:

var counter = 1;

while(counter < 4) {
   eval('name' + counter + ' = ' + counter);
   counter++;
}

alert(name1);