这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这篇文章主要介绍了 js 模仿 java 的 Map 集合的相关资料,Java 中某些最常用的集合类是 List 和 Map,感兴趣的小伙伴们可以了解一下
java.util 中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象元素列表。List 适用于按数值索引访问元素的情形。 Map 提供了一个更通用的元素存储方法。Map 集合类用于存储元素对(称作 "键" 和 "值"),其中每个键映射到一个值。从概念上而言,您可以将 List 看作是具有数值键的 Map。而实际上,除了 List 和 Map 都在定义 java.util 中外,两者并没有直接的联系。本文将着重介绍核心 Java 发行套件中附带的 Map,同时还将介绍如何采用或实现更适用于您应用程序特定数据的专用 Map。 了解完 java 中的 Map 后,直接上代码了!
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
- <title>
- 测试map
- </title>
- </head>
- <style type="text/CSS">
- </style>
- <script type="text/javascript">
- /*
- * Map对象,实现Map功能
- * size() 获取Map元素个数
- * isEmpty() 判断Map是否为空
- * clear() 删除Map所有元素
- * put(key, value) 向Map中增加元素(key, value)
- * remove(key) 删除指定key的元素,成功返回true,失败返回false
- * get(key) 获取指定key的元素值value,失败返回null
- * element(index) 获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null
- * containsKey(key) 判断Map中是否含有指定key的元素
- * containsValue(value) 判断Map中是否含有指定value的元素
- * keys() 获取Map中所有key的数组(array)
- * values() 获取Map中所有value的数组(array)
- *
- */
- function Map() {
- this.elements = new Array();
- //获取Map元素个数
- this.size = function() {
- return this.elements.length;
- },
- //判断Map是否为空
- this.isEmpty = function() {
- return (this.elements.length < 1);
- },
- //删除Map所有元素
- this.clear = function() {
- this.elements = new Array();
- },
- //向Map中增加元素(key, value)
- this.put = function(_key, _value) {
- if (this.containsKey(_key) == true) {
- if (this.containsValue(_value)) {
- if (this.remove(_key) == true) {
- this.elements.push({
- key: _key,
- value: _value
- });
- }
- } else {
- this.elements.push({
- key: _key,
- value: _value
- });
- }
- } else {
- this.elements.push({
- key: _key,
- value: _value
- });
- }
- },
- //删除指定key的元素,成功返回true,失败返回false
- this.remove = function(_key) {
- var bln = false;
- try {
- for (i = 0; i < this.elements.length; i++) {
- if (this.elements[i].key == _key) {
- this.elements.splice(i, 1);
- return true;
- }
- }
- } catch(e) {
- bln = false;
- }
- return bln;
- },
- //获取指定key的元素值value,失败返回null
- this.get = function(_key) {
- try {
- for (i = 0; i < this.elements.length; i++) {
- if (this.elements[i].key == _key) {
- return this.elements[i].value;
- }
- }
- } catch(e) {
- return null;
- }
- },
- //获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null
- this.element = function(_index) {
- if (_index < 0 || _index >= this.elements.length) {
- return null;
- }
- return this.elements[_index];
- },
- //判断Map中是否含有指定key的元素
- this.containsKey = function(_key) {
- var bln = false;
- try {
- for (i = 0; i < this.elements.length; i++) {
- if (this.elements[i].key == _key) {
- bln = true;
- }
- }
- } catch(e) {
- bln = false;
- }
- return bln;
- },
- //判断Map中是否含有指定value的元素
- this.containsValue = function(_value) {
- var bln = false;
- try {
- for (i = 0; i < this.elements.length; i++) {
- if (this.elements[i].value == _value) {
- bln = true;
- }
- }
- } catch(e) {
- bln = false;
- }
- return bln;
- },
- //获取Map中所有key的数组(array)
- this.keys = function() {
- var arr = new Array();
- for (i = 0; i < this.elements.length; i++) {
- arr.push(this.elements[i].key);
- }
- return arr;
- },
- //获取Map中所有value的数组(array)
- this.values = function() {
- var arr = new Array();
- for (i = 0; i < this.elements.length; i++) {
- arr.push(this.elements[i].value);
- }
- return arr;
- };
- }
- //测试map
- alert('测试map');
- var map = new Map();
- map.put(0, 0);
- map.put(1, 1);
- map.put(2, 2);
- alert('map的大小为:' + map.size());
- for (var i = 0; i < map.size(); i++) {
- alert('map的key' + i + '对应的value值为' + map.get(i));
- }
- alert('获取map中不存在的键' + map.get('获取map中不存在的键'));
- alert('map中的所有键的长度' + map.keys().length);
- for (var i = 0; i < map.keys().lenght; i++) {
- alert('map中的键值' + map.keys()[i]);
- }
- alert('map中的所有的value值的长度' + map.values().length);
- for (var i = 0; i < map.values().length; i++) {
- alert('map中的value的值' + map.values()[i]);
- }
- alert('判断map中的值value是否存在3' + map.containsValue(3));
- </script>
- <body>
- 测试map
- </body>
- </html>
运行效果图:
来源: http://www.phperz.com/article/17/0625/267711.html