首页

关于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>
<<推荐下载>>
  • (1) 阿里巴巴Java开发手册8种不同版本
  • (2) Web前端开发视频教程
  • (3) 30+明星讲师PPT课件分享一线大厂架构实战经验
  • (4) java开发_架构篇_视频资源分享_v2208
  • (5) java开发_高级篇_视频资源分享_v2208
  • (6) java开发_进阶篇(中级)_视频资源分享_v2208
  • (7) java开发_入门篇_视频资源分享_v2208
  • (8) 微信小程序开发视频1+167源码+实战demo等下载
  • (9) easy-shopping电子商务java源码(附脚本和安装文档说明)下载
  • (10) java常用的72份知名实用的电子书下载
  • (11) java开发性能优化资料整理大全(8份电子文档+3份实战优化)下载
  • (12) 9个常用的算法设计资料和100以上视频课件内容下载
  • (13) vue开发必备常用手册16件下载
  • (14) 21种不同技术集群方案(es、flink、redis、nginx、zk、lvs、kafka、mysql、k8s等)参考资料下载
  • (15) 20种技术代码规范(js/java/dba/阿里/华为/oracle/mysql等)参考资料下载
  • (16) 微服务五套资料(0-1,架构设计,springcloud,nacos等)下载
  • (17) 架构师(28知识图谱+3套简历模板+6套架构实战文档等)完整资料整理下载
  • (18) 大数据18套实战基础知识+8套简历模板下载
  • (19) 并发编程全套(7套+阿里巴巴+亿级实战等)实战资料下载
  • (20) Kafka九套学习整理知识点全套(面试+笔记+代码api+命令+容备等)资料下载
  • (21) java全套9个不同方向类型的面试题(基础+核心+大厂+架构师+近万套题库等)下载
  • (22) JAVA开发常用API帮助文档大全(超52种以上技术资料,高手必备)下载
  • (23) springcloud超详细139件全套学习实战资料( 视频课件+源码demo+文档资料等)下载
  • 更多推荐>>
  • <<热门文章>>