首页 > 代码库 > JavaScript仿Java实现Map

JavaScript仿Java实现Map

var Map = function() {
 this.elements = new Array();
 this.size = function() {
  return this.elements.length;
 }
 this.isEmpty = function() {
  return (this.elements.length < 1);
 }
 this.clear = function() {
  this.elements.length = 0;
 }
 this.put = function(_key, _value) {
  if(!this.containsKey(_key)){
   this.elements.push ( {
    key : _key,
    value : _value
   });
  }else{
   this.remove(_key);
   this.put(_key,_value);
  }
 }
 this.remove = function(_key) {
  try {
   for ( var i = 0; i < this.size(); i++) {
    if (this.elements[i].key == _key){
     this.elements.splice(i, 1);
     return true;
    }
   }
  } catch (e) {
   return false;
  }
  return false;
 }
 this.get = function(_key) {
  try {
   for ( var i = 0; i < this.size(); i++) {
    if (this.elements[i].key == _key) {
     var _value = this.elements[i].value;
     return _value;
    }
   }
  } catch (e) {
   return null;
  }
  return null;
 }
 this.containsKey = function(_key){
  try {
   for ( var i = 0; i < this.size(); i++) {
    if (this.elements[i].key == _key) {
     return true;
    }
   }
  } catch (e) {
   return false;
  }
  return false;
 }
 this.getValues = function(){
        var values=new Array();
        try {
            for ( var i = 0; i < this.size(); i++) {
                values.push(this.elements[i].key);
            }
        } catch (e) {
            alert("Can not get Map Values ! {1}"+e.message);
            return null;
        }
        return values;
    }
    this.getKeys = function(){
        var keys=new Array();
        try {
            for ( var i = 0; i < this.size(); i++) {
                keys.push(this.elements[i].values);
            }
        } catch (e) {
            //alert("Can not get Map Keys ! {1}"+e.message);
            return null;
        }
        return keys;
    }
    this.mapStr = function(){
        return this.elements.toString();
    } 
}