Javascript下实现MAP

发布于 2022-09-14 19:18:40 字数 6286 浏览 12 评论 0

Java中大家会经常用到MAP,但是在javascript中要如何实现呢,下面给大家贴段从网上搜集过来的代码,写得还是不错的。

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

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文