Method to generate a map object in js

  • 2020-03-30 01:17:16
  • OfStack

 
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) {//equal 
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; 
}; 
}; 

Related articles: