js仿真的地图类实现方法
关键----价值保留基于java的性能图
1。通过数组存储数据(使用闭包)
函数映射(){
函数(键,值){
this.key =关键;
this.value =价值;
}
函数(键,值){
对于(var i = 0;i < this.arr.length;i++){
如果(这。ARR {我},{关键=键)
{我},ARR值=价值;
返回;
}
}
本。ARR {这。arr.length } =新结构(键,值);
}
var =函数(键){
对于(var i = 0;i < this.arr.length;i++){
如果(这。ARR {我},{关键=键)
退货。ARR值{我};
}
}
返回null;
}
var =函数(键){
var v;
对于(var i = 0;i < this.arr.length;i++){
V = this.arr.pop();
如果(v.key =键){
继续;
}
this.arr.unshift(V);
}
}
var大小=函数(){()
返回this.arr.length;
}
VaR是空的=函数(){()
返回this.arr.length < = 0;
}
this.arr =新的数组();
this.get =得到;
this.put =放;
this.remove =删除;
this.size =尺寸;
this.isempty =空;
}
2。使用JSON存储数据(使用原型扩展方法)
函数映射(){
this.obj = { };
this.count = 0;
}
map.prototype.put =功能(键,值){
var属性的旧值=这.obj {key};
如果(属性的旧值= = undefined){
这个数+ +;
}
这个.obj {key} =价值;
}
map.prototype.get =功能(关键){
返回此.obj {key};
}
map.prototype.remove =功能(关键){
var属性的旧值=这.obj {key};
如果(属性的旧值!=未定义的){
This.count--;
删除obj {重点};
}
}
(map.prototype.size =功能){
返回this.count;
}
VaR地图=新的地图();
Map.put(
Map.put(
警报(map.get()); / /图
map.remove(关键);
警报(map.get()); / /未定义
更多有关Javascript相关内容的读者可以看到特别站:Javascript切换效果和技巧摘要
希望本文能对javascript程序设计有所帮助。