Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.09.2010, 23:04
Аспирант
Отправить личное сообщение для daMage Посмотреть профиль Найти все сообщения от daMage
 
Регистрация: 31.07.2010
Сообщений: 35

"Как если бы это был код"
Есть массив history_date_db.
var history_date_db = [];
history_date_db['988'] = 'Дата крещения Руси';

По ходу выполнения программы, в три переменные записываются значения.
var lesson; //history
var what; //date
var request;//988

По нажатию на кнопку срабатывает функция, в которой идёт проверка:
if(history_date_db['988']) {
	alert(history_date_db['988']);
}

Могу ли я переписать данную функцию иным способом:
if(lesson + '_' + what + '_db' + [request]) {
	alert(lesson + '_' + what + '_db' + [request]);
}

И если можно, то почему у меня не пошло?
Ответить с цитированием
  #2 (permalink)  
Старый 25.09.2010, 23:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от daMage
Есть массив history_date_db.
Что ж вы через жопу-то делаете. Откуда вообще появляется желание собирать имена переменных из кусков? Для этого хэши придумали.

var lessons = {
    history: {
        date: {
            998: 'Дата крещения Руси',
            2010: 'Ещё одна дата'
        }
    }
};

if (lessons[lesson] && lessons[lesson][what] && lessons[lesson][what][request]) {
    alert(lessons[lesson][what][request]);
}
Ответить с цитированием
  #3 (permalink)  
Старый 25.09.2010, 23:32
Аспирант
Отправить личное сообщение для daMage Посмотреть профиль Найти все сообщения от daMage
 
Регистрация: 31.07.2010
Сообщений: 35

Спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 30.09.2010, 09:13
Аватар для HelpeR
Профессор
Отправить личное сообщение для HelpeR Посмотреть профиль Найти все сообщения от HelpeR
 
Регистрация: 21.10.2008
Сообщений: 241

daMage, ваш вариант можно выполнить с помощью eval
if(eval(lesson + '_' + what + '_db[' + request + ']')) {
    alert(eval(lesson + '_' + what + '_db[' + request + ']'));
}

Последний раз редактировалось HelpeR, 30.09.2010 в 09:15.
Ответить с цитированием
  #5 (permalink)  
Старый 30.09.2010, 10:27
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Только не нужно.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 19:48
MVC vs API. Ваше мнение. B~Vladi Общие вопросы Javascript 58 19.10.2010 15:29
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 12:31
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 18:39
Что означает конструкция ? ivanmara Общие вопросы Javascript 55 07.01.2009 01:54