我正在運行一個循環,並且我正在嘗試每次循環運行時都創建一個變量,並將計數器的編號附加到變量名的末尾。如何在JavaScript中附加一個變量到另一個變量?
這裏是我的代碼:
var counter = 1;
while(counter < 4) {
var name+counter = 5;
counter++;
}
所以循環運行後應該有3個變量命名爲1,名稱和NAME3。如何將計數器編號附加到我在循環中創建的變量的末尾?
我正在運行一個循環,並且我正在嘗試每次循環運行時都創建一個變量,並將計數器的編號附加到變量名的末尾。如何在JavaScript中附加一個變量到另一個變量?
這裏是我的代碼:
var counter = 1;
while(counter < 4) {
var name+counter = 5;
counter++;
}
所以循環運行後應該有3個變量命名爲1,名稱和NAME3。如何將計數器編號附加到我在循環中創建的變量的末尾?
你正在尋找一個數組:
var names = Array();
// ...
names[counter] = 5;
然後你會得到三個稱爲名稱[0],名稱[1]和名稱[2]的變量。請注意,這是傳統的由0開始不1.
您可以使用關聯數組,
var mycount=new Array();
var count=1;
while (count < 4) {
mycount[count++]=5;
}
使用eval函數,它會使事情
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']);
使用數組。
假設你在瀏覽器中運行,nameXXX
是全局變量,使用
window["name" + counter] = 5;
試試這個:
var counter = 1;
while(counter < 4) {
eval('name' + counter + ' = ' + counter);
counter++;
}
alert(name1);
示例代碼,它會創建1,名稱2,名稱3變量。
var count=1;
while (count < 4)
{
eval("var name" + count + "=5;");
count++;
}
alert (name1) ;
alert (name2) ;
alert (name3) ;
如果您使用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- 實在是很難與EVAL優化這些漂亮的新JavaScript引擎的未來, ,我確定那些程序員希望看到它死掉,或者至少得到它的範圍限制。
如果你堅持全局變量,你可以這樣做:
var counter= 1, name= 'name';
while(counter < 5){
window[name+counter]=5;
++counter;
}
alert(name3)