Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сформировать имя переменной из другой переменной+строка (https://javascript.ru/forum/misc/33547-sformirovat-imya-peremennojj-iz-drugojj-peremennojj-stroka.html)

sx00 27.11.2012 14:43

Сформировать имя переменной из другой переменной+строка
 
в языковом файле у меня подобные данные:
_txt_nickname = 'Ваш никнейм';
_txt_email = 'Ваша почта';
_txt_password = 'Ваш пароль';

мне нужно вызывать эти данные в текущем скрипте.

в этом скрипте имя поля (например, 'nickname') записывается в переменную field_name.
как можно сформировать имя новой переменной, используя строку '_txt_' и переменную field_name, чтобы получилась переменная
_txt_nickname

Hekumok 27.11.2012 14:49

var field_name = "nickname" ;
window["_txt_"+field_name] = "Your nickname" ;
alert(_txt_nickname) ;

sx00 27.11.2012 15:04

ага, спасибо

Atae 27.11.2012 15:15

eval('var ololo = 11')

ksa 27.11.2012 15:51

Цитата:

Сообщение от sx00 (Сообщение 218167)
в языковом файле у меня подобные данные:
_txt_nickname = 'Ваш никнейм';
_txt_email = 'Ваша почта';
_txt_password = 'Ваш пароль';

Очень плохой вариант организации данных...
Как вариант

var txt={
   'nickname': {
      'rus': 'Ваш никнейм',
      'eng': 'Nick name'
   },
   'email': {
      'rus': 'Ваша почта',
      'eng': 'E-mail'
   }
};
alert(txt['nickname']['rus']);

sx00 27.11.2012 17:34

Цитата:

Сообщение от ksa (Сообщение 218197)
Очень плохой вариант организации данных...

интересно, спасибо за совет.

а чем тот вариант плох? там у меня данные лежат в разных файлах, которые подключаются в зависимости от выбранного языка, лишние переводы не подгружаются

ksa 28.11.2012 08:34

Цитата:

Сообщение от sx00
а чем тот вариант плох?

Именно в использовании и плох...

Цитата:

Сообщение от sx00
у меня данные лежат в разных файлах, которые подключаются в зависимости от выбранного языка

В этом случае будет простое "облегчение"

var txt={
   'nickname': 'Ваш никнейм',
   'email': 'Ваша почта'
};
alert(txt['nickname']);


Часовой пояс GMT +3, время: 00:54.