2010-03-06 53 views
2

我正在運行一個循環,並且我正在嘗試每次循環運行時都創建一個變量,並將計數器的編號附加到變量名的末尾。如何在JavaScript中附加一個變量到另一個變量?

這裏是我的代碼:

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

所以循環運行後應該有3個變量命名爲1,名稱和NAME3。如何將計數器編號附加到我在循環中創建的變量的末尾?

回答

4

你正在尋找一個數組:

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

然後你會得到三個稱爲名稱[0],名稱[1]和名稱[2]的變量。請注意,這是傳統的由0開始不1.

2

您可以使用關聯數組,

var mycount=new Array(); 
var count=1; 
while (count < 4) { 
    mycount[count++]=5; 
} 
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']); 
2

使用數組。


假設你在瀏覽器中運行,nameXXX是全局變量,使用

window["name" + counter] = 5; 
-1

試試這個:

var counter = 1; 

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

alert(name1); 
0

示例代碼,它會創建1,名稱2,名稱3變量。

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

alert (name1) ; 
alert (name2) ; 
alert (name3) ; 
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- 實在是很難與EVAL優化這些漂亮的新JavaScript引擎的未來, ,我確定那些程序員希望看到它死掉,或者至少得到它的範圍限制。

如果你堅持全局變量,你可以這樣做:

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

alert(name3) 
相關問題