首页 > 语言 > JavaScript > 正文

javascript 实现map集合

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

本文给大家分享的是个人项目中需要的一个小功能,当时经过一番度娘才实现,现在从项目中拿出来,分享给大家,需要的小伙伴快来参考下吧。

前几天项目上想用map集合一样的东西,简单拿对象拼了一下子,今天闲的慌实现一下

大家不要见笑

代码

  1. var Map = function (){ 
  2. /************基础变量**************/ 
  3. var hashmap = {}; 
  4. var keys = []; 
  5. var vals = []; 
  6. var entrys = []; 
  7. var size = 0; 
  8. var index = {}; 
  9.  
  10. var Entry = function(key,value){ 
  11. var entryKey = key; 
  12. var entryValue = value; 
  13. this.getKey = function (){ 
  14. return entryKey; 
  15. }; 
  16. this.getValue = function(){ 
  17. return entryValue; 
  18. }; 
  19. }; 
  20. /************基本方法 按字母排序**************/ 
  21. this.clear = function(key) { 
  22. hashmap[key] = undefined; 
  23. var i = index[key]; 
  24. entrys.splice(i,1); 
  25. vals.splice(i,1); 
  26. keys.splice(i,1); 
  27. size --; 
  28. }; 
  29.  
  30. this.entrySet = function() { 
  31. return entrys; 
  32. }; 
  33.  
  34. this.get = function(key){ 
  35. return hashmap[key]; 
  36. }; 
  37.  
  38. this.isEmpty = function() { 
  39. if(hashmap) return true
  40. return false
  41. }; 
  42.  
  43. this.keySet = function() { 
  44. return keys; 
  45. }; 
  46.  
  47. this.put = function(key,value){ 
  48. if(!this.get(key)){ 
  49. entrys.push(new Entry(key,value)); 
  50. keys.push(key); 
  51. vals.push(value); 
  52. index[key] = size; 
  53. size ++; 
  54. else { 
  55. var i = index[key]; 
  56. entrys[i] = new Entry(key,value); 
  57. vals[i] = value; 
  58. hashmap[key] = value; 
  59. }; 
  60.  
  61. this.size = function() { 
  62. return size; 
  63. }; 
  64.  
  65. this.values = function() { 
  66. return vals; 
  67. }; 
  68. }; 
  69. /************扩展方法**************/ 
  70. Map.prototype = { 
  71. containsKey : function(key) { 
  72. if(this.get(key)) return true
  73. return false
  74. }, 
  75. putAll : function(set) { 
  76. for(var e in set){ 
  77. if(set[e]){ 
  78. this.put(e,set[e]); 
  79. }, 
  80. remove : function(key) { 
  81. var v = this.get(key); 
  82. this.clear(key); 
  83. return v; 
  84. }; 
  85. var h = new Map(); 
  86. h.put('a',10); 
  87. h.put('b',11); 
  88. h.put('c',3); 
  89. h.put('d',5); 
  90. console.info(h.size()); 
  91. h.clear('a'); 
  92. console.info(h.containsKey('a')); 
  93. console.info(h.containsKey('b')); 
  94. console.info(h.size()); 
  95.  
  96. console.log(h.entrySet()); 
  97. console.log(h.keySet()); 
  98. console.log(h.values()); 
  99.  
  100. for(var i in h.entrySet()){ 
  101. var obj = h.entrySet()[i]; 
  102. console.log(obj.getKey() + ":" + obj.getValue()); 

 

以上所述就是本文的全部内容了,希望大家能够喜欢。

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

图片精选