JavaScript关联数组(按变量)

JavaScript关联数组(按变量),javascript,string,key,associative-array,Javascript,String,Key,Associative Array,我想将一个变量传递到我的monthHash变量的键中: var monthHash = new Array(); monthHash["JAN"] = "Jan"; monthHash["FEB"] = "Feb"; ... monthHash["NOV"] = "Nov"; monthHash["DEV"] = "Dec"; 这样我就可以做到: alert(monthHash[the_variable]); 而不是使用开关盒来完成这一过程 然而,当我尝试时,我得到了一

我想将一个变量传递到我的
monthHash
变量的键中:

 var monthHash = new Array();
  monthHash["JAN"] = "Jan";
  monthHash["FEB"] = "Feb";
  ...
  monthHash["NOV"] = "Nov";
  monthHash["DEV"] = "Dec";
这样我就可以做到:

alert(monthHash[the_variable]);
而不是使用开关盒来完成这一过程


然而,当我尝试时,我得到了一个错误。有没有一种方法可以让变量指示JavaScript中键的字符串标识符?

将其声明为对象:

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


我所能看到的代码生成错误的唯一情况是,
变量
未定义时(您将收到
引用错误

但是,
数组
并不用于键/值对。您应该改用对象:

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

var the_variable = 'NOV';

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

右-请参阅大量文献()了解为什么js数组不是关联数组,而是使用对象。(但我会使用“var monthHash=new Object();)
var monthHash = {};
monthHash['JAN'] = 'Jan';
monthHash['FEB'] = 'Feb';
monthHash['NOV'] = 'Nov';
monthHash['DEC'] = 'Dec';

var the_variable = 'NOV';

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