2011년 1월 12일 수요일

javascript Map HashMap

요즘 javascript의 대세는 역시 jQuery일것이다.
jQuery를 사용해 보니 가볍고 편리한게 장점인듯하다.

그래도 노가다 코딩을 워낙 싫어라 하는 탓에 jQuery를 한꺼플씩 포장해서 사용하고 있다.

제목과는 전혀 맞지 않는 서두라 죄송...^^

아무튼 구글링을 하면 관련 자료들이 많이 나오지만 사용중인 코드는 이거다.

Map = function(){
 this.map = new Object();
};  
Map.prototype = {  
    put : function(key, value){  
        this.map[key] = value;
    },  
    get : function(key){  
        return this.map[key];
    },
    containsKey : function(key){   
     return key in this.map;
    },
    containsValue : function(value){   
     for(var prop in this.map){
      if(this.map[prop] == value) return true;
     }
     return false;
    },
    isEmpty : function(key){   
     return (this.size() == 0);
    },
    clear : function(){  
     for(var prop in this.map){
      delete this.map[prop];
     }
    },
    remove : function(key){   
     delete this.map[key];
    },
    keys : function(){  
        var keys = new Array();  
        for(var prop in this.map){  
            keys.push(prop);
        }  
        return keys;
    },
    values : function(){  
     var values = new Array();  
        for(var prop in this.map){  
         values.push(this.map[prop]);
        }  
        return values;
    },
    size : function(){
      var count = 0;
      for (var prop in this.map) {
        count++;
      }
      return count;
    },
    toString : function(){
      var s=[];
      for(var prop in this.map){
         s.push(prop+':'+this.map[prop]);
      }
      return s.join(',');
    }
};

사용법은 간단하다.
var map = new Map();
 map.put("user_id", "atspeed");
 -----------------------
map.get("user_id");

그냥 java Map과 동일하게 사용하면 되는거다.

#SCMInno #에스씨엠이노 #WEBDeK

댓글 2개:

구르몽 :

toStrong 추가요
toStrong:function(){bar s=[];
for(var prop in this.map) s.push(prop+':'+this.map[prop]);
return s.join(',');

atspeed :

너무 늦게 봤네요.
좋은 정보 감사드립니다.