zoukankan      html  css  js  c++  java
  • javascript实现Map

      1 function Map() {
      2     this.elements = new Array();
      3 
      4     // 获取MAP元素个数
      5     this.size = function() {
      6         return this.elements.length;
      7     }
      8 
      9     // 判断MAP是否为空
     10     this.isEmpty = function() {
     11         return (this.elements.length < 1);
     12     }
     13 
     14     // 删除MAP所有元素
     15     this.clear = function() {
     16         this.elements = new Array();
     17     }
     18 
     19     // 向MAP中增加唯一元素(key, value)
     20     this.put = function(_key, _value) {
     21         this.remove(_key);
     22         this.elements.push({
     23                     key : _key,
     24                     value : _value
     25                 });
     26     }
     27 
     28     // 向MAP中增加重复元素(key, value)
     29     this.putRepeat = function(_key, _value) {
     30         this.elements.push({
     31                     key : _key,
     32                     value : _value
     33                 });
     34     }
     35 
     36     // 删除指定KEY的元素,成功返回True,失败返回False
     37     this.remove = function(_key) {
     38         var bln = false;
     39         try {
     40             for (i = 0; i < this.elements.length; i++) {
     41                 if (this.elements[i].key == _key) {
     42                     this.elements.splice(i, 1);
     43                     return true;
     44                 }
     45             }
     46         } catch (e) {
     47             bln = false;
     48         }
     49         return bln;
     50     }
     51 
     52     // 获取指定KEY的元素值VALUE,失败返回NULL
     53     this.get = function(_key) {
     54         try {
     55             var result = null;
     56             for (i = 0; i < this.elements.length; i++) {
     57                 if (this.elements[i].key == _key) {
     58                     result = this.elements[i].value;
     59                 }
     60             }
     61             return result;
     62         } catch (e) {
     63             return null;
     64         }
     65     }
     66 
     67     // 设置MAP中指定KEY元素的值VALUE, 失败返回NULL
     68     this.set = function(_key, _value) {
     69         try {
     70             this.remove(_key);
     71             this.put(_key, _value);
     72         } catch (e) {
     73             return null;
     74         }
     75     }
     76 
     77     // 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
     78     this.element = function(_index) {
     79         if (_index < 0 || _index >= this.elements.length) {
     80             return null;
     81         }
     82         return this.elements[_index];
     83     }
     84 
     85     // 判断MAP中是否含有指定KEY的元素
     86     this.containsKey = function(_key) {
     87         var bln = false;
     88         try {
     89             for (i = 0; i < this.elements.length; i++) {
     90                 if (this.elements[i].key == _key) {
     91                     bln = true;
     92                 }
     93             }
     94         } catch (e) {
     95             bln = false;
     96         }
     97         return bln;
     98     }
     99 
    100     // 判断MAP中是否含有指定VALUE的元素
    101     this.containsValue = function(_value) {
    102         var bln = false;
    103         try {
    104             for (i = 0; i < this.elements.length; i++) {
    105                 if (this.elements[i].value == _value) {
    106                     bln = true;
    107                 }
    108             }
    109         } catch (e) {
    110             bln = false;
    111         }
    112         return bln;
    113     }
    114 
    115     // 获取MAP中所有VALUE的数组(ARRAY)
    116     this.values = function() {
    117         var arr = new Array();
    118         for (i = 0; i < this.elements.length; i++) {
    119             arr.push(this.elements[i].value);
    120         }
    121         return arr;
    122     }
    123 
    124     // 获取MAP中所有KEY的数组(ARRAY)
    125     this.keys = function() {
    126         var arr = new Array();
    127         for (i = 0; i < this.elements.length; i++) {
    128             arr.push(this.elements[i].key);
    129         }
    130         return arr;
    131     }
    132 }
  • 相关阅读:
    经纬度转十进制 、十进制转经纬度 、没有秒
    PowerDesigner使用
    Kafka日志存储原理
    ambari rest api (三)
    ambari rest api (修改集群配置文件)
    使用QJM构建HDFS HA架构(2.2+)
    Hadoop NameNode 高可用 (High Availability) 实现解析
    hadoop2.x Federation
    hdfs HA原理
    使用JSONObject生成和解析json
  • 原文地址:https://www.cnblogs.com/zhourunbest/p/4793765.html
Copyright © 2011-2022 走看看