首页 > 语言 > JavaScript > 正文

JavaScript中实现map功能代码分享

2024-05-06 16:22:09
字体:
来源:转载
供稿:网友

这篇文章主要介绍了JavaScript中实现map功能代码分享,本文直接给出实现代码,给出一个MAP类,类中包含大多数的常用方法,还可以自己扩展,需要的朋友可以参考下

 

 
  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.  
  28. //获取MAP元素个数 
  29. this.size = function() { 
  30. return this.elements.length; 
  31.  
  32. //判断MAP是否为空 
  33. this.isEmpty = function() { 
  34. return(this.elements.length < 1); 
  35.  
  36. //删除MAP所有元素 
  37. this.clear = function() { 
  38. this.elements = new Array(); 
  39.  
  40. //向MAP中增加元素(key, value) 
  41. this.put = function(_key, _value) { 
  42. this.elements.push( { 
  43. key : _key, 
  44. value : _value 
  45. }); 
  46.  
  47. //删除指定KEY的元素,成功返回True,失败返回False 
  48. this.remove = function(_key) { 
  49. var bln = false
  50. try
  51. for(i = 0; i < this.elements.length; i++) { 
  52. if(this.elements[i].key == _key) { 
  53. this.elements.splice(i, 1); 
  54. return true
  55. catch(e) { 
  56. bln = false
  57. return bln; 
  58.  
  59. //获取指定KEY的元素值VALUE,失败返回NULL 
  60. this.get = function(_key) { 
  61. try
  62. for(i = 0; i < this.elements.length; i++) { 
  63. if(this.elements[i].key == _key) { 
  64. return this.elements[i].value; 
  65. catch(e) { 
  66. return null
  67.  
  68. //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL 
  69. this.element = function(_index) { 
  70. if(_index < 0 || _index >= this.elements.length) { 
  71. return null
  72. return this.elements[_index]; 
  73.  
  74. //判断MAP中是否含有指定KEY的元素 
  75. this.containsKey = function(_key) { 
  76. varbln = false
  77. try
  78. for(i = 0; i < this.elements.length; i++) { 
  79. if(this.elements[i].key == _key) { 
  80. bln = true
  81. catch(e) { 
  82. bln = false
  83. return bln; 
  84.  
  85. //判断MAP中是否含有指定VALUE的元素 
  86. this.containsValue = function(_value) { 
  87. var bln = false
  88. try
  89. for(i = 0; i < this.elements.length; i++) { 
  90. if(this.elements[i].value == _value) { 
  91. bln = true
  92. catch(e) { 
  93. bln = false
  94. return bln; 
  95.  
  96. //获取MAP中所有VALUE的数组(ARRAY) 
  97. this.values = function() { 
  98. var arr = new Array(); 
  99. for(i = 0; i < this.elements.length; i++) { 
  100. arr.push(this.elements[i].value); 
  101. return arr; 
  102.  
  103. //获取MAP中所有KEY的数组(ARRAY) 
  104. this.keys = function() { 
  105. var arr = new Array(); 
  106. for(i = 0; i < this.elements.length; i++) { 
  107. arr.push(this.elements[i].key); 
  108. return arr; 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选