js中生成map对象的方法

 更新时间:2014年01月09日 16:24:02   作者:  
生成map对象的方法或许会有很多,在本文将为大家详细介绍下使用js是如何做到的,感兴趣的朋友不要错过
复制代码 代码如下:

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;
};
};

相关文章

最新评论