首页

关于javascript中定义HashMap函数进行键值对存取js代码实现示例

标签:js的hashmap,前端HashMap,JS关系映射函数Map     发布时间:2018-12-06   

一、前言

关于在JavaScript的前端脚本中中定义类似java.util.HashMap的关系映射键值对的HashMap.js的函数,详情参见代码示例。

二、代码示例

1. HashMap.js

function HashMap() {	@b@	//定义长度  @b@	var length = 0;@b@	//创建一个对象  @b@	var obj = new Object();@b@@b@	/** @b@	 * 判断Map是否为空 @b@	 */@b@	this.isEmpty = function() {@b@		return length == 0;@b@	};@b@@b@	/** @b@	 * 判断对象中是否包含给定Key @b@	 */@b@	this.containsKey = function(key) {@b@		return (key in obj);@b@	};@b@@b@	/** @b@	 * 判断对象中是否包含给定的Value @b@	 */@b@	this.containsValue = function(value) {@b@		for ( var key in obj) {@b@			if (obj[key] == value) {@b@				return true;@b@			}@b@		}@b@		return false;@b@	};@b@@b@	/** @b@	 *向map中添加数据 @b@	 */@b@	this.put = function(key, value) {@b@		if (!this.containsKey(key)) {@b@			length++;@b@		}@b@		obj[key] = value;@b@	};@b@@b@	/** @b@	 * 根据给定的Key获得Value @b@	 */@b@	this.get = function(key) {@b@		return this.containsKey(key) ? obj[key] : null;@b@	};@b@@b@	/** @b@	 * 根据给定的Key删除一个值 @b@	 */@b@	this.remove = function(key) {@b@		if (this.containsKey(key) && (delete obj[key])) {@b@			length--;@b@		}@b@	};@b@@b@	/** @b@	 * 获得Map中的所有Value @b@	 */@b@	this.values = function() {@b@		var _values = new Array();@b@		for ( var key in obj) {@b@			_values.push(obj[key]);@b@		}@b@		return _values;@b@	};@b@@b@	/** @b@	 * 获得Map中的所有Key @b@	 */@b@	this.keySet = function() {@b@		var _keys = new Array();@b@		for ( var key in obj) {@b@			_keys.push(key);@b@		}@b@		return _keys;@b@	};@b@@b@	/** @b@	 * 获得Map的长度 @b@	 */@b@	this.size = function() {@b@		return length;@b@	};@b@@b@	/** @b@	 * 清空Map @b@	 */@b@	this.clear = function() {@b@		length = 0;@b@		obj = new Object();@b@	};@b@}

2. 前端页面调用示例

<!DOCTYPE html>@b@<html> @b@<script src="HashMap.js"></script>@b@<body>   @b@<script type="text/javascript"> @b@@b@ @b@    var map = new HashMap(); @b@    map.put("key1","Value1"); @b@    map.put("key2","Value2"); @b@    map.put("key3","Value3"); @b@    map.put("key4","Value4"); @b@    map.put("key5","Value5"); @b@	@b@    alert("size:"+map.size()+" key1:"+map.get("key1")); @b@    map.remove("key1"); @b@    map.put("key3","newValue"); @b@	@b@    var values = map.values(); @b@    for(var i in values){ @b@        document.write(i+":"+values[i]+"   "); @b@    }@b@	@b@    document.write("<br>"); @b@@b@    var keySet = map.keySet(); @b@    for(var i in keySet){ @b@        document.write(i+":"+keySet[i]+"  "); @b@    }@b@	@b@    alert(map.isEmpty()); @b@ @b@ @b@</script>@b@</body>@b@</html>