javascript生成map物件的函式

admin發表於2017-03-18

本章節分享一段網路上的程式碼,可以生成map物件,希望能夠對大家有所幫助。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
var Map = function(){ 
  this._entrys=new Array(); 
 
  this.put=function(key,value){ 
    if(key==null||key==undefined){ 
      return; 
    } 
    var index=this._getIndex(key); 
    if(index==-1){ 
      var entry=new Object(); 
      entry.key=key; 
      entry.value=value; 
      this._entrys[this._entrys.length]=entry; 
    }
    else{ 
      this._entrys[index].value = value; 
    } 
  }; 
  this.get = function(key){ 
    var index = this._getIndex(key); 
    return (index != -1) ? this._entrys[index].value : null; 
  }; 
  this.remove = function(key){ 
    var index = this._getIndex(key); 
    if(index != -1){ 
      this._entrys.splice(index, 1); 
    } 
  }; 
   
  this.clear = function(){ 
    this._entrys.length = 0;; 
  }; 
   
  this.contains = function(key){ 
    var index = this._getIndex(key); 
    return (index != -1) ? true : false; 
  }; 
   
  this.getCount=function(){ 
    return this._entrys.length; 
  }; 
   
  this.getEntrys = function(){ 
    return this._entrys; 
  }; 
   
  this._getIndex = function(key){ 
    if(key==null || key == undefined){ 
      return -1; 
    } 
    var _length=this._entrys.length; 
    for(var i=0;i<_length;i++){ 
      var entry = this._entrys[i];
      if(entry==null||entry==undefined){ 
        continue; 
      } 
      if(entry.key=== key){
        return i; 
      } 
    } 
    return -1; 
  }; 
  this._toString = function(){ 
    var string = ""; 
    for (var i = 0; i < this.getEntrys().length; i++){ 
      string += this.getEntrys()[i].key+"::"+this.getEntrys()[i].value; 
      if(i!=this.getEntrys().length-1){ 
        string += ";"; 
      } 
    } 
    return string; 
  }; 
};

相關文章