Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Конвертация значения в переменную (https://javascript.ru/forum/misc/11177-konvertaciya-znacheniya-v-peremennuyu.html)

Sweet 12.08.2010 00:49

Цитата:

Сообщение от lancer
Неужели выход только один?

Ну, если ты видишь только такой выход, то уж лучше switch используй:)

Gvozd 12.08.2010 00:50

Цитата:

Сообщение от lancer
Переменная n получает значение в процессе работы скрипта,

ССЗБ
var color_arr = new Array(); 
lips_pomade_param = 7; 
color_arr[lips_pomade_param]='<li>Раздел</li>';

n = "lips_pomade_param"; 
_n=eval(n);
alert(color_arr[_n]);

PS не используй это в реальных проектах.
а то Б-женька тебя накажет, а мне оторвет руки
код дан, чисто в ознакомительных целях.
при нормальном написании проекта, твой ситуация просто тне может возникнуть.
и даже если она волзникла(а этого не может ыбть, если ты правильно пишешь), то switch более лучший и правильный выход

lancer 12.08.2010 01:01

Насчет switch в курсе, просто еще его не применял, чтобы не внести в вопрос ошибок написал привычно на if'ах.

Вообще, спасибо!

Цитата:

при нормальном написании проекта, твой ситуация просто тне может возникнуть.
Зная класс элемента включаю нужный массив.
Класс использую как переменную mass[class].
Такого не может возникнуть? А что еще такого я могу знать у элемента
что не в стринге? id, data-(name) - тоже стринг.

По сути включаю нужный массив по клику на элемент. Подумал и решил реализовать как вот выше описываю.
Можно по другому?

Sweet 12.08.2010 01:15

Реальность такова, что к одному вопросу можно найти тысячу ответов. Начиная от тупо-бредовых, вроде эвала, и заканчивая вполне адекватными, типа свитча.
А, вообще... правда это секрет.. но ладно, так уж и быть - открою. Есть такая штука как объекты.. Так вот к ним как раз через строки обращаются:)
var color = {lips_pomade_param:'<li>Раздел</li>'},
n = 'lips_pomade_param'; 
alert(color[n]);

Gvozd 12.08.2010 01:36

Цитата:

Сообщение от lancer
А что еще такого я могу знать у элемента
что не в стринге?

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

inGray 12.08.2010 10:01

Меня снова будут по голове бить сейчас, но почему нельзя сделать так:
var color_arr = new Array(); 
color_arr["lips_pomade_param"]='<li>Раздел</li>';
n = "lips_pomade_param"; 
alert(color_arr[n]);

:-?

Sweet 12.08.2010 10:27

Цитата:

Сообщение от inGray
но почему нельзя сделать так

Можно, но не через массив. Почему ты так привязался к ним?! Между вами что-то есть?:) Кстати, new Array() - это, конечно, наглядно, но лучше объявлять массив через [], имхо.
Используй объекты! Найди, так сказать, одно отличие от того, что написал выше:)
var color_arr = new Object(); 
color_arr["lips_pomade_param"]='<li>Раздел</li>';
n = "lips_pomade_param"; 
alert(color_arr[n]);

new Object(), конечно, лучше просто через {} объявить

inGray 12.08.2010 10:33

Sweet,
Ты меня с lancer спутал )

Sweet 12.08.2010 10:46

inGray,
Ой, действительно:D Но смысл-то тот же

inGray 12.08.2010 11:03

Я и не спорю)) Просто предлагаю решение ;)


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