Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2009, 20:49
maxikuku
 
Сообщений: n/a

PHP-шная конструкция ${$var1.$var2}. А в яваскрипте?
Здравствуйте!
Собственно сабж. Есть ли такая конструкция в яваскрипте, которая позволяет формировать из строк имя переменной, к которой обращаешься.
Хотел как-нибудь поискать ответ самостоятельно, но даже в голову не приходит как правильно сформировать вопрос.
Буду очень благодарен за ответ.
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2009, 20:57
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Если нужно обратится к переменной из глобального контекста:
window["var1"]

С локальным контекстом сложнее, придется использолвать eval. Расскажите для чего это вам понадобилось, может быть подскажем, как обойтись без таких вещей.
Ответить с цитированием
  #3 (permalink)  
Старый 15.06.2009, 21:12
maxikuku
 
Сообщений: n/a

хе-хе.
очень даже получилось.
eval(var1+var2)
Очень большое спасибо вам, добрый человек, за подсказку.
Ответить с цитированием
  #4 (permalink)  
Старый 16.06.2009, 01:13
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
Расскажите для чего это вам понадобилось, может быть подскажем, как обойтись без таких вещей
осталось незамеченным
Ответить с цитированием
  #5 (permalink)  
Старый 16.06.2009, 10:30
maxikuku
 
Сообщений: n/a

да нет же, я не жадный . Могу поделиться.
пхп-шный цикл генерирует вот такой набор переменных
WMUWMZ=7.478;
WMZWMU=0.133725595079;
WMRWMZ=31.139;
WMZWMR=0.0321140691737;
WMEWMZ=1.357;
WMZWME=0.736919675755;
WMUWME=10.355;
WMEWMU=0.0965717044906;
WMRWME=42.489;
WMEWMR=0.0235355033067;
WMUWMR=4.155;
WMRWMU=0.240673886883;
ну и еще десяток подобных

и вот такая конструкция
if ( substr(C1,0,2)==substr(C2,0,2) ) { // аля WM=WM
C=Math.round((eval(C1+C2)+0.0000001)*10000)/10000;
в зависимости от того какие данные получат С1 и С2 (данные с формы страницы) в уравнение подставляется нужная переменная.
Может быть не слишком оптимизированный, но вполне рабочий код.
Ответить с цитированием
  #6 (permalink)  
Старый 16.06.2009, 10:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от maxikuku
но вполне рабочий код
Не код, а говнокод.

var currencies = {
    WMUWMZ: 7.478,
    WMZWMU: 0.133725595079,
    WMRWMZ: 31.139,
    WMZWMR: 0.0321140691737
};
if (substr(C1, 0, 2) == substr(C2, 0, 2) ) { // аля WM=WM
    C = Math.round((currencies[C1 + C2] + 0.0000001) * 10000) / 10000;
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск