我正在运行一个循环,我每次循环运行时都会尝试创建一个变量,并在变量名末尾附加一个计数器的数字。
这是我的代码:
var counter = 1;
while(counter < 4) {
var name+counter = 5;
counter++;
}
因此循环运行后应该有3个名为name1,name2和name3的变量。如何将计数器编号附加到我在循环中创建的变量的末尾?
答案 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);