代码之家  ›  专栏  ›  技术社区  ›  Incognito

变量关联数组

  •  3
  • Incognito  · 技术社区  · 16 年前

    我想把一个变量传递到 monthHash 变量在这里:

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

    这样我就能做到:

    alert(monthHash[the_variable]);
    

    而不是使用开关盒来完成这一过程。

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

    2 回复  |  直到 12 年前
        1
  •  6
  •   Daniel Vassallo    16 年前

    我唯一能看到您的代码产生错误的地方是 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
  •  2
  •   Nightfirecat peSHIr    12 年前

    声明为对象:

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

    var monthHash = {jan: "...", ...}
    
    var x = "jan";
    alert(monthHash[x]);