当前位置:Gxlcms > JavaScript > javascript实现Java中的Map对象功能的实例详解

javascript实现Java中的Map对象功能的实例详解

时间:2021-07-01 10:21:17 帮助过:6人阅读

javascript  自定义对象实现Java中的Map对象功能

Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。

这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容! 

这里Key,你要使用String类型,和Java一样,你可以进行一些增加,删除,修改,获得的操作。

使用很简单,我先把工具类给大家看下:

  1. /**
  2. * @version 1.0
  3. * @author cuisuqiang@163.com
  4. * 用于实现页面 Map 对象,Key只能是String,对象随意
  5. */
  6. var Map = function(){
  7. this._entrys = new Array();
  8. this.put = function(key, value){
  9. if (key == null || key == undefined) {
  10. return;
  11. }
  12. var index = this._getIndex(key);
  13. if (index == -1) {
  14. var entry = new Object();
  15. entry.key = key;
  16. entry.value = value;
  17. this._entrys[this._entrys.length] = entry;
  18. }else{
  19. this._entrys[index].value = value;
  20. }
  21. };
  22. this.get = function(key){
  23. var index = this._getIndex(key);
  24. return (index != -1) ? this._entrys[index].value : null;
  25. };
  26. this.remove = function(key){
  27. var index = this._getIndex(key);
  28. if (index != -1) {
  29. this._entrys.splice(index, 1);
  30. }
  31. };
  32. this.clear = function(){
  33. this._entrys.length = 0;;
  34. };
  35. this.contains = function(key){
  36. var index = this._getIndex(key);
  37. return (index != -1) ? true : false;
  38. };
  39. this.getCount = function(){
  40. return this._entrys.length;
  41. };
  42. this.getEntrys = function(){
  43. return this._entrys;
  44. };
  45. this._getIndex = function(key){
  46. if (key == null || key == undefined) {
  47. return -1;
  48. }
  49. var _length = this._entrys.length;
  50. for (var i = 0; i < _length; i++) {
  51. var entry = this._entrys[i];
  52. if (entry == null || entry == undefined) {
  53. continue;
  54. }
  55. if (entry.key === key) {//equal
  56. return i;
  57. }
  58. }
  59. return -1;
  60. };
  61. }

 如果你不懂Js中对象的创建等一些基础知识,自己可以网上查一下。

  1. // 自定义Map对象
  2. var map = new Map();
  3. map.put("a","a");
  4. alert(map.get("a"));
  5. map.put("a","b");
  6. alert(map.get("a"));

先弹出 a 后面弹出 b ,因为后面的会覆盖前面的!

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

人气教程排行