javascript 实现的类似于java里的Map对象

来源:互联网 发布:男生背包 知乎 编辑:程序博客网 时间:2024/05/21 09:48

一直想做一个自己的ajax框架,所以要给自己的javascript要恶补一下。

最近在看javascript权威指南第四版,有10000多页,象字典一样。不过确实够权威的。

javascript的提供的对象比较少,不象java一样,有List,ArrayList,Map,HashMap等各种数据对象。于是就利用javascript的对象技术,封装了一个类似于java里的Map 对象

//自定义的Map 对象

function Map(){
   this.elements=new Array();
   this.size=function(){
                return this.elements.length;
        }
   this.put=function(_key,_value){
      this.elements.push({key:_key,value:_value});
   }
  
   this.remove=function(_key){
      var bln=false;
      try{  
    for (i=0;i<this.elements.length;i++){  
    if (this.elements[i].key==_key){
       this.elements.splice(i,1);
    return true;
    }
    }
   }catch(e){
          bln=false;   
   }
   return bln;
   }
  
   this.containsKey=function(_key){
      var bln=false;
      try{  
    for (i=0;i<this.elements.length;i++){  
    if (this.elements[i].key==_key){
      bln=true;
    }
    }
   }catch(e){
          bln=false;   
   }
   return bln;
  
   }
   
   this.get=function(_key){   
      try{  
    for (i=0;i<this.elements.length;i++){  
    if (this.elements[i].key==_key){
      return this.elements[i];
    }
    }
   }catch(e){
          return null;  
   }
   }
  
}

//测试Map的调用方法

function testMap(){
   var testmap=new Map();
   testmap.put("01","michael");
   testmap.put("02","michael2");
   alert (testmap.size());
  
   var key="02"
   if (testmap.containsKey(key)){
       var element=testmap.get(key);
       alert (element.key+"|"+element.value);
   }else{
       alert ("不包含"+key);
   }
 
  testmap.remove("02");
   if (testmap.containsKey(key)){
       var element=testmap.get(key);
       alert (element.key+"|"+element.value);
   }else{
       alert ("不包含"+key);
   }
 
  

}

原创粉丝点击