var a=new Array()
a["用户名"]="值"

解决方案 »

  1.   

    http://www.cnblogs.com/ttyp/archive/2005/07/30/203824.aspx#583745
      

  2.   


    [定义]:
    var HMap = function(_id){
        this._id = _id;
        this._map = {};
        this.setObj = function(_key,_value){
            this._map["_valueOf_"+_key] = _value;
        }
        this.getObj = function(_key){
            return this._map["_valueOf_"+_key];
        }
    }[调用]:[创建hmap对象]    var map1 = new HMap("hm1");
    [添加值]
    map1.setObj("key1","value1");
    map1.setObj("key2","value2");[获取值]var _value1 = map1.getObj("key1");
    ps:
    1、没时间测,可能有笔误
    2、这种定义 HMap 对象的方法虽然直观,但效率不是最高的,如果需要创建很多 实例
    (〉1000个)不是很推荐
    3、hbhbhbhbhb1021(天外水火(我要多努力))  的方法是对的
      

  3.   

    4、这种其他语言的 HashTable实现 在 js中是对象的基本特性,应该是由js 的动态特性决定的
    5、js 中 obj["prop"] = obj.prop;
    6、this._map["_valueOf_"+_key]  中的 前缀 "_valueOf_" 是为了避免特殊情况下,_key 为数值,obj["1"] 这是不允许的;
    7、js 基于对象但是不面向对象,所有所谓的“面向对象特性”都是模拟出来的,集合了最优秀程序员的智慧和他们最曲折离奇的实现
      

  4.   

    <form name=myform>
    <input type=text name="txt1" id="d1">
    <input type=text name = "txt2" id="d2">
    </form>
    <input type=button value="submit" onclick="addNameToHash()">
    <script language=javascript>var HashTable = [];//添加新元素
    HashTable.add = function(key,value)
    {
    this[key] = value;
    }
    //由key都到value
    HashTable.getValue = function(key)
    { return this[key];
    }//将form里所有控件的name和id都存进HashTale中,name对应于HashTable的key,id对应于value
    function addNameToHash()
    {
    var controls = myform.elements;
    var len = controls.length;
    for(var i=0;i<len;i++)
    {
    if(controls[i].name!="")
    {
    HashTable.add(controls[i].name,controls[i].id);
    }
    }
    alert(HashTable.getValue("txt2"))

    }</script>
      

  5.   


    ps: 和 cutBug 商榷var HashTable = [];
    为什么不定义成
    var HashTable = {};呢?两种应该都可以用
    我习惯是用下面那种
    有什么玄机吗?
    请教一下