JS模拟的Map类实现方法
本文实例讲述了JS模拟的Map类。分享给大家供大家参考,具体如下:
根据java中map的属性,实现key----value保存
1、使用数组方式存储数据,(使用闭包)
functionMap(){
varstruct=function(key,value){
this.key=key;
this.value=value;
}
varput=function(key,value){
for(vari=0;i<this.arr.length;i++){
if(this.arr[i].key===key){
this.arr[i].value=value;
return;
}
}
this.arr[this.arr.length]=newstruct(key,value);
}
varget=function(key){
for(vari=0;i<this.arr.length;i++){
if(this.arr[i].key===key){
returnthis.arr[i].value;
}
}
returnnull;
}
varremove=function(key){
varv;
for(vari=0;i<this.arr.length;i++){
v=this.arr.pop();
if(v.key===key){
continue;
}
this.arr.unshift(v);
}
}
varsize=function(){
returnthis.arr.length;
}
varisEmpty=function(){
returnthis.arr.length<=0;
}
this.arr=newArray();
this.get=get;
this.put=put;
this.remove=remove;
this.size=size;
this.isEmpty=isEmpty;
}
2、使用JSON方式存储数据(使用原型方式拓展方法)
functionMap(){
this.obj={};
this.count=0;
}
Map.prototype.put=function(key,value){
varoldValue=this.obj[key];
if(oldValue==undefined){
this.count++;
}
this.obj[key]=value;
}
Map.prototype.get=function(key){
returnthis.obj[key];
}
Map.prototype.remove=function(key){
varoldValue=this.obj[key];
if(oldValue!=undefined){
this.count--;
deletethis.obj[key];
}
}
Map.prototype.size=function(){
returnthis.count;
}
varmap=newMap();
map.put("key","map");
map.put("key","map1");
alert(map.get("key"));//map1
map.remove("key");
alert(map.get("key"));//undefined
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短