Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как создать переменную


Автор: Loengreen 30.8.2007, 19:37
Имеется цикл while, хотелось бы что бы при выполнении некоторого условия он создавал переменные value1, value2, value3... то есть имя переменной было бы равно value+i.
Это вообще возможно?

Заранее благодарю за ответ.

Автор: Zeroglif 30.8.2007, 21:27
В глобальном контексте через window['value'+i], в любом контексте с помошью eval.

Автор: vasac 30.8.2007, 21:41
Loengreen, простите за вопрос, но вы знакомы с массивами?

Автор: Izabela 31.8.2007, 18:10
Zeroglif, а можна пример с помошью eval. Мне тоже нужно..........Заранее благодарю

Автор: SamDark 31.8.2007, 18:44
Код

eval('var value'+i+'=123;');

Автор: Izabela 2.9.2007, 14:54
SamDark, сенкс...
а интересная вещь....
Код

 eval("this.outputPort"+i+".setWorkflow(workflow);");
ето работает
а вот ето 
Код

this.addPort(eval("this.outputPort"+i+",this.width,this.height/2"));
----числит 30...а не так  this.addPort(this.outputPort,this.width,this.height/2); 
но зато так работает
Код

var port = eval("this.outputPort"+i);
this.addPort(port,this.width,this.height/2);

я видимо не понемаю ка работает eval smile 

Автор: vasac 2.9.2007, 15:08
Когда не понимаете, как работает функция, почитайте документацию по ней smile
Обращаю внимание, что это функция.

Автор: Izabela 2.9.2007, 15:30
Because EVAL executes the entire equation in one go rather than trying to process each part separately smile 

Автор: Loengreen 9.9.2007, 15:30
vasac, 
Нет не знаком... Может Вы познакомите? smile

Задачи разные бывают. Не везде получается использовать "стандартные" подходы. ;) 
Zeroglif, SamDark, Спасибо за ответ. Все понял.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)