JavaScript ассоциативный массив по переменной

Я хотел бы передать переменную в ключ моего monthHash переменная здесь:

 var monthHash = new Array();
  monthHash["JAN"] = "Jan";
  monthHash["FEB"] = "Feb";
  ...
  monthHash["NOV"] = "Nov";
  monthHash["DEV"] = "Dec";

Так что я могу сделать это:

alert(monthHash[the_variable]);

Вместо использования переключателя, чтобы пройти через это.

Когда я пытаюсь, однако, я получаю ошибку. Есть ли способ, которым я могу иметь переменную, указывающую строковый идентификатор для ключа в JavaScript?

2 ответа

Решение

Единственный случай, когда я вижу, где ваш код может генерировать ошибку, это когда the_variable не определено (где вы получите ReferenceError).

Тем не мение, Array не предназначен для использования для пар ключ / значение. Вместо этого вы должны использовать объект:

var monthHash = {};
monthHash['JAN'] = 'Jan';
monthHash['FEB'] = 'Feb';
monthHash['NOV'] = 'Nov';
monthHash['DEC'] = 'Dec';

var the_variable = 'NOV';

alert(monthHash[the_variable]);  // alerts 'Nov'

Объявите это как объект:

var monthHash = {};
monthHash["JAN"] = ..;

или же

var monthHash = {jan: "...", ...}

var x = "jan";
alert(monthHash[x]);
Другие вопросы по тегам