首页 > 网站 > WEB开发 > 正文

JavaScript创建Map对象(转)

2024-04-27 14:21:51
字体:
来源:转载
供稿:网友

javaScript创建Map对象(转)

Javascript 里面本身没有map对象,用JavaScript的Array来实现Map的数据结构。

Js代码收藏代码
  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. *varmap=newMap();
  19. *
  20. *map.put("key","value");
  21. *varval=map.get("key")
  22. *……
  23. *
  24. */
  25. functionMap(){
  26. this.elements=newArray();
  27. //获取MAP元素个数
  28. this.size=function(){
  29. returnthis.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=newArray();
  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.remove=function(_key){
  48. varbln=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. returntrue;
  54. }
  55. }
  56. }catch(e){
  57. bln=false;
  58. }
  59. returnbln;
  60. }
  61. //获取指定KEY的元素值VALUE,失败返回NULL
  62. this.get=function(_key){
  63. try{
  64. for(i=0;i<this.elements.length;i++){
  65. if(this.elements[i].key==_key){
  66. returnthis.elements[i].value;
  67. }
  68. }
  69. }catch(e){
  70. returnnull;
  71. }
  72. }
  73. //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
  74. this.element=function(_index){
  75. if(_index<0||_index>=this.elements.length){
  76. returnnull;
  77. }
  78. returnthis.elements[_index];
  79. }
  80. //判断MAP中是否含有指定KEY的元素
  81. this.containsKey=function(_key){
  82. varbln=false;
  83. try{
  84. for(i=0;i<this.elements.length;i++){
  85. if(this.elements[i].key==_key){
  86. bln=true;
  87. }
  88. }
  89. }catch(e){
  90. bln=false;
  91. }
  92. returnbln;
  93. }
  94. //判断MAP中是否含有指定VALUE的元素
  95. this.containsValue=function(_value){
  96. varbln=false;
  97. try{
  98. for(i=0;i<this.elements.length;i++){
  99. if(this.elements[i].value==_value){
  100. bln=true;
  101. }
  102. }
  103. }catch(e){
  104. bln=false;
  105. }
  106. returnbln;
  107. }
  108. //获取MAP中所有VALUE的数组(ARRAY)
  109. this.values=function(){
  110. vararr=newArray();
  111. for(i=0;i<this.elements.length;i++){
  112. arr.push(this.elements[i].value);
  113. }
  114. returnarr;
  115. }
  116. //获取MAP中所有KEY的数组(ARRAY)
  117. this.keys=function(){
  118. vararr=newArray();
  119. for(i=0;i<this.elements.length;i++){
  120. arr.push(this.elements[i].key);
  121. }
  122. returnarr;
  123. }
  124. }
  125. varmap=newMap();
  126. map.put("key1","value1");
  127. map.put("key2","value2");
  128. map.put("key3","value3");
  129. //varval=map.get("key1");
  130. //varval=map.containsKey("key1");
  131. //varval=map.element(2).value;
  132. vararr=map.keys();
  133. for(vari=0;i<arr.length;i++){
  134. alert(map.get(arr[i]));
  135. }
  136. //alert(val);

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