国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > 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()); 

 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 遵义县| 日喀则市| 庐江县| 三亚市| 云浮市| 登封市| 宜阳县| 集安市| 沂源县| 长垣县| 仲巴县| 抚顺市| 交城县| 舞阳县| 安福县| 定兴县| 澎湖县| 德格县| 邹城市| 磐石市| 南充市| 旌德县| 阿拉尔市| 新乡市| 叙永县| 长白| 鄂伦春自治旗| 陈巴尔虎旗| 汶川县| 湖北省| 黑水县| 乳山市| 濉溪县| 泰和县| 策勒县| 永州市| 米脂县| 长泰县| 六安市| 南宫市| 民乐县|