javascript实现java的map对象,js实现new map()

 分类:

javascript(84) 

[html] view plain copy

print?

  1. /*
  2. * MAP对象,实现MAP功能
  3. *
  4. * 接口:
  5. * size()     获取MAP元素个数
  6. * isEmpty()    判断MAP是否为空
  7. * clear()     删除MAP所有元素
  8. * put(key, value)   向MAP中增加元素(key, value)
  9. * remove(key)    删除指定KEY的元素,成功返回True,失败返回False
  10. * get(key)    获取指定KEY的元素值VALUE,失败返回NULL
  11. * element(index)   获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
  12. * containsKey(key)  判断MAP中是否含有指定KEY的元素
  13. * containsValue(value) 判断MAP中是否含有指定VALUE的元素
  14. * values()    获取MAP中所有VALUE的数组(ARRAY)
  15. * keys()     获取MAP中所有KEY的数组(ARRAY)
  16. *
  17. * 例子:
  18. * var map = new Map();
  19. *
  20. * map.put("key", "value");
  21. * var val = map.get("key")
  22. * ……
  23. *
  24. */
  25. function Map() {
  26. this.elements = new Array();
  27. //获取MAP元素个数
  28. this.size = function() {
  29. return this.elements.length;
  30. };
  31. //判断MAP是否为空
  32. this.isEmpty = function() {
  33. return (this.elements.length < 1);
  34. };
  35. //删除MAP所有元素
  36. this.clear = function() {
  37. this.elements = new Array();
  38. };
  39. //向MAP中增加元素(key, value)
  40. this.put = function(_key, _value) {
  41. this.elements.push( {
  42. key : _key,
  43. value : _value
  44. });
  45. };
  46. //删除指定KEY的元素,成功返回True,失败返回False
  47. this.removeByKey = function(_key) {
  48. var bln = false;
  49. try {
  50. for (i = 0; i < this.elements.length; i++) {
  51. if (this.elements[i].key == _key) {
  52. this.elements.splice(i, 1);
  53. return true;
  54. }
  55. }
  56. } catch (e) {
  57. bln = false;
  58. }
  59. return bln;
  60. };
  61. //删除指定VALUE的元素,成功返回True,失败返回False
  62. this.removeByValue = function(_value) {//removeByValueAndKey
  63. var bln = false;
  64. try {
  65. for (i = 0; i < this.elements.length; i++) {
  66. if (this.elements[i].value == _value) {
  67. this.elements.splice(i, 1);
  68. return true;
  69. }
  70. }
  71. } catch (e) {
  72. bln = false;
  73. }
  74. return bln;
  75. };
  76. //删除指定VALUE的元素,成功返回True,失败返回False
  77. this.removeByValueAndKey = function(_key,_value) {
  78. var bln = false;
  79. try {
  80. for (i = 0; i < this.elements.length; i++) {
  81. if (this.elements[i].value == _value && this.elements[i].key == _key) {
  82. this.elements.splice(i, 1);
  83. return true;
  84. }
  85. }
  86. } catch (e) {
  87. bln = false;
  88. }
  89. return bln;
  90. };
  91. //获取指定KEY的元素值VALUE,失败返回NULL
  92. this.get = function(_key) {
  93. try {
  94. for (i = 0; i < this.elements.length; i++) {
  95. if (this.elements[i].key == _key) {
  96. return this.elements[i].value;
  97. }
  98. }
  99. } catch (e) {
  100. return false;
  101. }
  102. return false;
  103. };
  104. //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
  105. this.element = function(_index) {
  106. if (_index < 0 || _index >= this.elements.length) {
  107. return null;
  108. }
  109. return this.elements[_index];
  110. };
  111. //判断MAP中是否含有指定KEY的元素
  112. this.containsKey = function(_key) {
  113. var bln = false;
  114. try {
  115. for (i = 0; i < this.elements.length; i++) {
  116. if (this.elements[i].key == _key) {
  117. bln = true;
  118. }
  119. }
  120. } catch (e) {
  121. bln = false;
  122. }
  123. return bln;
  124. };
  125. //判断MAP中是否含有指定VALUE的元素
  126. this.containsValue = function(_value) {
  127. var bln = false;
  128. try {
  129. for (i = 0; i < this.elements.length; i++) {
  130. if (this.elements[i].value == _value) {
  131. bln = true;
  132. }
  133. }
  134. } catch (e) {
  135. bln = false;
  136. }
  137. return bln;
  138. };
  139. //判断MAP中是否含有指定VALUE的元素
  140. this.containsObj = function(_key,_value) {
  141. var bln = false;
  142. try {
  143. for (i = 0; i < this.elements.length; i++) {
  144. if (this.elements[i].value == _value && this.elements[i].key == _key) {
  145. bln = true;
  146. }
  147. }
  148. } catch (e) {
  149. bln = false;
  150. }
  151. return bln;
  152. };
  153. //获取MAP中所有VALUE的数组(ARRAY)
  154. this.values = function() {
  155. var arr = new Array();
  156. for (i = 0; i < this.elements.length; i++) {
  157. arr.push(this.elements[i].value);
  158. }
  159. return arr;
  160. };
  161. //获取MAP中所有VALUE的数组(ARRAY)
  162. this.valuesByKey = function(_key) {
  163. var arr = new Array();
  164. for (i = 0; i < this.elements.length; i++) {
  165. if (this.elements[i].key == _key) {
  166. arr.push(this.elements[i].value);
  167. }
  168. }
  169. return arr;
  170. };
  171. //获取MAP中所有KEY的数组(ARRAY)
  172. this.keys = function() {
  173. var arr = new Array();
  174. for (i = 0; i < this.elements.length; i++) {
  175. arr.push(this.elements[i].key);
  176. }
  177. return arr;
  178. };
  179. //获取key通过value
  180. this.keysByValue = function(_value) {
  181. var arr = new Array();
  182. for (i = 0; i < this.elements.length; i++) {
  183. if(_value == this.elements[i].value){
  184. arr.push(this.elements[i].key);
  185. }
  186. }
  187. return arr;
  188. };
  189. //获取MAP中所有KEY的数组(ARRAY)
  190. this.keysRemoveDuplicate = function() {
  191. var arr = new Array();
  192. for (i = 0; i < this.elements.length; i++) {
  193. var flag = true;
  194. for(var j=0;j<arr.length;j++){
  195. if(arr[j] == this.elements[i].key){
  196. flag = false;
  197. break;
  198. }
  199. }
  200. if(flag){
  201. arr.push(this.elements[i].key);
  202. }
  203. }
  204. return arr;
  205. };
  206. }
时间: 2024-10-24 06:01:17

javascript实现java的map对象,js实现new map()的相关文章

自定义实现JavaScript的Map对象,修改IE不兼容MAP()的问题

由于IE8及以下版本不支持Map对象,本文为程序猿们提供了有效的解决方法. 本文重写了Map对象,实现了常用的set, get, put, clear, remove, delete, forEach, has, containsKey, isEmpty, size 等方法,使用和声明的方试和正常声明Map对象一样: var map = new Map(); 只需将下面代码拷入<script type="text/javascript"></script>中即可

js中的Map对象的简单示例

es6提供一个对象Map, 其功能类似于java中的Map, 下面是java中的Map和js中的Map的简单对比: js中的Map.set()相当于java中的Map.put(), js中的Map.size相当于java中的Map.size()://在js中size是属性,在Map中size()是方法. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"

javascript 实现java中的Map

javascript实现java中的Map,代码是在国外的一个网站上看到的(http://stackoverflow.com/questions/368280/javascript-hashmap-equivalent),自己稍作了修改,之前也看到过有人用2个数组实现了Map,但是我感觉效率比较低,现在这个我感觉效率还可以,自己做了下测试,代码如下: Map.js Java代码   function Map(linkItems) { this.current = undefined; this.

JavaScript创建Map对象(转)

JavaScript 里面本身没有map对象,用JavaScript的Array来实现Map的数据结构. Js代码   /* * MAP对象,实现MAP功能 * * 接口: * size()     获取MAP元素个数 * isEmpty()    判断MAP是否为空 * clear()     删除MAP所有元素 * put(key, value)   向MAP中增加元素(key, value) * remove(key)    删除指定KEY的元素,成功返回True,失败返回False * 

JavaScript Map对象的实现

1. [代码]js代码     /* * MAP对象,实现MAP功能 * * 接口: * size()     获取MAP元素个数 * isEmpty()    判断MAP是否为空 * clear()     删除MAP所有元素 * put(key, value)   向MAP中增加元素(key, value)  * remove(key)    删除指定KEY的元素,成功返回True,失败返回False * get(key)    获取指定KEY的元素值VALUE,失败返回NULL * ele

javascript自定义简单map对象功能

这里介绍一种js创建简单map对象的方法: function Map() { //创建object对象, 并给object对象添加key和value属性 var obj1=new Object(); var obj2=new Object(); obj1.key="zhangsan" ; obj1.value=23; obj2.key="lisi"; obj2.value=25; //创建一个数组,将创建的object对象放如到数组中去 var map=new Ar

转!! Java中如何遍历Map对象的4种方法

在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. [java] view

Javascript 如何生成Less和Js的Source map

为什么有Source map CSS和JS脚本正变得越来越复杂,为了解决网络瓶颈,大部分源代码都需要经过编译.合并.压缩才能运用到实际环境中.为了减少网络资源占用,源码一般都会经过以下方式处理: 使用css框架合并压缩css文件:    使用js合并插件,减少网络请求次数:    压缩js文件,降低网络占用: 这三种方式都可以有效的解决实际问题,但同时在运行调试过程中也带来麻烦,由于css和js都是经过了压缩转换,当报错时我们很难定位到源代码具体位置.为了解决这个问题,Source map由此诞

Atitit.js javascript异常处理机制与java异常的转换.js exception process Voae

Atitit.js javascript异常处理机制与java异常的转换.js exception processVoae 1. 1. javascript异常处理机制 1 2. 2. Web前后台异常的统一处理 1 3.  java异常转换为js异常 1 3. -------------详细代码 2 1. 1. javascript异常处理机制 Throw str Not throw error  ..cause ie,ff error obj is diff.. 2. 2. Web前后台异常