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'