js封装map

举报
chenyu 发表于 2021/07/26 23:31:07 2021/07/26
【摘要】 js封装map          在大三的时候,做电子商务网站的时候,前端页面打包过来的数据都是json格式,为了更好的体验,有的时候我们需要封装url,需要我点击回退的时候,url地址栏目不变,其实我们在Android或者java里面通常也会使用去访问其他网络,或者去访问做第三方接口的时候,我们都需要对url按照一定的...

js封装map

         在大三的时候,做电子商务网站的时候,前端页面打包过来的数据都是json格式,为了更好的体验,有的时候我们需要封装url,需要我点击回退的时候,url地址栏目不变,其实我们在Android或者java里面通常也会使用去访问其他网络,或者去访问做第三方接口的时候,我们都需要对url按照一定的规范去封装好,这个时候必不可少的一个数据结构就是map,java里面的map用红黑二叉树实现,但是javascript需要自己去实现,下面就是一个简单的对map封装。
 

   
  1. /**
  2. *
  3. */
  4. function Map() {
  5. this.elements = new Array();
  6. this.size = function() {
  7. return this.elements.length;
  8. }
  9. this.isEmpty = function() {
  10. return (this.elements.length < 1);
  11. }
  12. this.clear = function() {
  13. this.elements = new Array();
  14. }
  15. this.put = function(_key, _value) {
  16. this.elements.push( {
  17. key : _key,
  18. value : _value
  19. });
  20. }
  21. this.remove = function(_key) {
  22. var bln = false;
  23. try {
  24. for (i = 0; i < this.elements.length; i++) {
  25. if (this.elements[i].key == _key) {
  26. this.elements.splice(i, 1);
  27. return true;
  28. }
  29. }
  30. } catch (e) {
  31. bln = false;
  32. }
  33. return bln;
  34. }
  35. this.get = function(_key) {
  36. try {
  37. for (i = 0; i < this.elements.length; i++) {
  38. if (this.elements[i].key == _key) {
  39. return this.elements[i].value;
  40. }
  41. }
  42. } catch (e) {
  43. return null;
  44. }
  45. }
  46. this.element = function(_index) {
  47. if (_index < 0 || _index >= this.elements.length) {
  48. return null;
  49. }
  50. return this.elements[_index];
  51. }
  52. this.containsKey = function(_key) {
  53. var bln = false;
  54. try {
  55. for (i = 0; i < this.elements.length; i++) {
  56. if (this.elements[i].key == _key) {
  57. bln = true;
  58. }
  59. }
  60. } catch (e) {
  61. bln = false;
  62. }
  63. return bln;
  64. }
  65. this.containsValue = function(_value) {
  66. var bln = false;
  67. try {
  68. for (i = 0; i < this.elements.length; i++) {
  69. if (this.elements[i].value == _value) {
  70. bln = true;
  71. }
  72. }
  73. } catch (e) {
  74. bln = false;
  75. }
  76. return bln;
  77. }
  78. this.values = function() {
  79. var arr = new Array();
  80. for (i = 0; i < this.elements.length; i++) {
  81. arr.push(this.elements[i].value);
  82. }
  83. return arr;
  84. }
  85. this.keys = function() {
  86. var arr = new Array();
  87. for (i = 0; i < this.elements.length; i++) {
  88. arr.push(this.elements[i].key);
  89. }
  90. return arr;
  91. }
  92. }

我们使用的时候和java差不多
 

   
  1. Map map=new Map();
  2. map.put("a",“student”);
  3. var value=map.get("a");
  4. console.log(value);
 
我们可以从控制台打印出  student
 
 
 
 

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/49512415

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。