自己用Javascript写了一个Map,没有别人写的好,不过也要贴出来,作为学习参考!
function Map()
{
this.Entry = function(key,value){
this.key=key;
this.value=value;
};
this.EntrySet = new Array();
this.constraint = function(key){
if(null==key || undefined==key ||"undefined"==typeof(key) || ""==key)
{
return false;
}
return true;
};
this.entry = function (key){
if(!this.constraint(key))return;
for(var i=0; i<this.EntrySet.length; i++)
{
var entry = this.EntrySet[i];
if(entry.key==key) {
return entry;
};
}
return;
};
this.put=function(key,value){
if(!this.constraint(key))return;
var entry = this.entry(key);
if(entry)
{
entry.value = value;
}else
{
this.EntrySet.push(new this.Entry(key,value));
}
};
this.get=function(key){
var entry = this.entry(key);
if(entry)
{
return entry.value;
}
return;
};
}//end of map define
下面把人家写的HashMap也贴出来,供参考学习!
/**
* HashMap构造函数
*/
function HashMap()
{
this.length = 0;
this.prefix = "hashmap_prefix_20040716_";
}
/**
* 向HashMap中添加键值对
*/
HashMap.prototype.put = function (key, value)
{
if(!this[this.prefix+key]){
this[this.prefix + key] = value;
this.length ++;
}
}
/**
* 从HashMap中获取value值
*/
HashMap.prototype.get = function(key)
{
return typeof this[this.prefix + key] == "undefined"
? null : this[this.prefix + key];
}
/**
* 从HashMap中获取所有key的集合,以数组形式返回
*/
HashMap.prototype.keySet = function()
{
var arrKeySet = new Array();
var index = 0;
for(var strKey in this)
{
if(strKey.substring(0,this.prefix.length) == this.prefix)
arrKeySet[index ++] = strKey.substring(this.prefix.length);
}
return arrKeySet.length == 0 ? null : arrKeySet;
}
/**
* 从HashMap中获取value的集合,以数组形式返回
*/
HashMap.prototype.values = function()
{
var arrValues = new Array();
var index = 0;
for(var strKey in this)
{
if(strKey.substring(0,this.prefix.length) == this.prefix)
{
arrValues[index ++] = this[strKey];
}
}
return arrValues.length == 0 ? null : arrValues;
}
/**
* 获取HashMap的value值数量
*/
HashMap.prototype.size = function()
{
return this.length;
}
/**
* 删除指定的值
*/
HashMap.prototype.remove = function(key)
{
delete this[this.prefix + key];
this.length --;
}
/**
* 清空HashMap
*/
HashMap.prototype.clear = function()
{
for(var strKey in this)
{
if(strKey.substring(0,this.prefix.length) == this.prefix)
delete this[strKey];
}
this.length = 0;
}
/**
* 判断HashMap是否为空
*/
HashMap.prototype.isEmpty = function()
{
return this.length == 0;
}
/**
* 判断HashMap是否存在某个key
*/
HashMap.prototype.containsKey = function(key)
{
for(var strKey in this)
{
if(strKey == this.prefix + key)
return true;
}
return false;
}
/**
* 判断HashMap是否存在某个value
*/
HashMap.prototype.containsValue = function(value)
{
for(var strKey in this)
{
if(this[strKey] == value)
return true;
}
return false;
}
/**
* 把一个HashMap的值加入到另一个HashMap中,参数必须是HashMap
*/
HashMap.prototype.putAll = function(map)
{
if(map == null)
return;
if(map.constructor != HashMap)
return;
var arrKey = map.keySet();
var arrValue = map.values();
for(var i in arrKey)
this.put(arrKey[i],arrValue[i]);
}
//toString
HashMap.prototype.toString = function()
{
var str = "";
for(var strKey in this)
{
if(strKey.substring(0,this.prefix.length) == this.prefix)
str += strKey.substring(this.prefix.length)
+ " : " + this[strKey] + "\r\n";
}
return str;
}
分享到:
相关推荐
javascript实现map,极其方便,可在需要当前页处理多数据时使用
里面有三个js文件,都是需要引入的。具体的方法,可以看源码。
前几天项目上想用map集合一样的东西,简单拿对象拼了一下子,今天闲的慌实现一下 大家不要见笑 代码 var Map = function (){ /************基础变量**************/ var hashmap = {}; var keys = []; var vals...
自己设计的用JavaScript实现Array 和Map 里面有三个Js文件,都需要引入.
高性能的 javascript map实现,稳定性强的 基于 JSON的map! *同时附赠网络上搜索的map一个,用于对比。 经过笔者测试,网络上的map不如笔者所写的map性能高,容量也相差很多。
原创 在javascript中,仅提供了数组(Array)对象,本文利用数组对象来模式实现MAP对象
主要介绍了JavaScript中利用Array和Object实现Map的方法,实例分析了javascript实现map的添加、获取、移除、清空、遍历等操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
高人把google map的javascript全部下载下来 可以实现大部分功能 离线使用GOOGLEMAP
用javaScript实现的map,经过测试,很好用
javascript Map原型,对象,实现javascript中的Map数据类型功能
1.可以用null,boolean,string,number,array,Date,自定义类的对象作键值,数组里的元素必须是实现equals方法的类型,而且数组里含有null,undefined,NaN会弹出异常; 2.数组维数尽量不要太多,程序里递归检查数组元素...
主要介绍了Javascript实现的Map集合工具类,以完整实例形式分析了javascript实现map集合的构造、查找、删除、判断等相关技巧,需要的朋友可以参考下
里面包含两个实例,js实现map的相关功能
javascript map类。类中有相应demo,在javascript中实现Map的一个类,包括map中对应的一些数据结构相关算法。
js遍历map javaScript遍历map的简单实现 var map = { "name" : "华仔", "realname":"刘德华" }; for (var key in map) { console.log("map["+key+"]"+map[key]); } 这样会把map给遍历掉,显示在浏览器上的...
javascript 模拟 java中的 List,Map js文件为 js/utils.js IE6.0 测试通过 <br>List: add(var obj) //添加一个元素 remove(var index) //删除一个元素 get(var index) //获取一个元素 remove...
主要介绍了JavaScript实现Java中Map容器的方法,结合实例形式分析了JavaScript实现Java中Map容器的原理与相关实现技巧,需要的朋友可以参考下
本篇文章给大家介绍javascript中实现map的示例代码,代码写的简单易懂,可以获取、删除键值,刚兴趣的朋友跟着脚本之家小编一起学习吧。
详解JavaScript中Hash Map映射结构的实现_.docx