簡體   English   中英

如何將變量附加到JavaScript中的另一個變量?

[英]How do I append a variable to another variable in JavaScript?

我正在運行一個循環,我試圖在每次循環運行時創建一個變量,並在變量名末尾附加計數器的編號。

這是我的代碼:

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

所以循環運行后應該有3個名為name1,name2和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;
}
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;

如果你使用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)

使用eval函數,它會制作東西

示例代碼,它將創建name1,name2,name3變量。

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

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

嘗試這個:

var counter = 1;

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

alert(name1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM