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]);