2010-03-06 9 views
2

Я запускаю цикл, и я пытаюсь создать переменную каждый раз, когда цикл работает с номером счетчика, присоединенного к концу имени переменной.Как добавить переменную в другую переменную в JavaScript?

Вот мой код:

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

Таким образом, после цикла работает там должно быть 3 переменные с именем name1, name2 и 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

Пример кода, она будет создавать name1, name2, name3 переменные.

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); 

Я не очень доверяю будущее это вычислять по действительно трудно оптимизировать новомодные новые JavaScript двигатели с Eval, , и я уверен, что эти программисты хотели бы, чтобы он умер, или, по крайней мере, обрезали его.

Если вы настаиваете на глобальных переменных, которые вы могли бы сделать это:

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

alert(name3) 
Смежные вопросы