JavaScript ассоциативный массив по переменной - PullRequest
3 голосов
/ 23 июня 2010

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

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

, чтобы я мог сделать это:

alert(monthHash[the_variable]);

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

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

Ответы [ 2 ]

6 голосов
/ 23 июня 2010

Единственный случай, когда я вижу, где ваш код может генерировать ошибку, это когда 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'
2 голосов
/ 23 июня 2010

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

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

или

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

var x = "jan";
alert(monthHash[x]);
...