zoukankan      html  css  js  c++  java
  • javascript实现java的map对象,js实现new map()

     分类:
    [html] view plain copy
     
     print?
    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.  * var map = new Map();  
    19.  *  
    20.  * map.put("key", "value");  
    21.  * var val = map.get("key")  
    22.  * ……  
    23.  *  
    24.  */  
    25. function Map() {  
    26.     this.elements = new Array();  
    27.   
    28.     //获取MAP元素个数  
    29.     this.size = function() {  
    30.         return this.elements.length;  
    31.     };  
    32.   
    33.     //判断MAP是否为空  
    34.     this.isEmpty = function() {  
    35.         return (this.elements.length 1);  
    36.     };  
    37.   
    38.     //删除MAP所有元素  
    39.     this.clear = function() {  
    40.         this.elements = new Array();  
    41.     };  
    42.   
    43.     //向MAP中增加元素(key, value)   
    44.     this.put = function(_key, _value) {  
    45.         this.elements.push( {  
    46.             key : _key,  
    47.             value : _value  
    48.         });  
    49.     };  
    50.   
    51.     //删除指定KEY的元素,成功返回True,失败返回False  
    52.     this.removeByKey = 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.                     this.elements.splice(i, 1);  
    58.                     return true;  
    59.                 }  
    60.             }  
    61.         } catch (e) {  
    62.             bln = false;  
    63.         }  
    64.         return bln;  
    65.     };  
    66.       
    67.     //删除指定VALUE的元素,成功返回True,失败返回False  
    68.     this.removeByValue = function(_value) {//removeByValueAndKey  
    69.         var bln = false;  
    70.         try {  
    71.             for (i = 0; i this.elements.length; i++) {  
    72.                 if (this.elements[i].value == _value) {  
    73.                     this.elements.splice(i, 1);  
    74.                     return true;  
    75.                 }  
    76.             }  
    77.         } catch (e) {  
    78.             bln = false;  
    79.         }  
    80.         return bln;  
    81.     };  
    82.       
    83.     //删除指定VALUE的元素,成功返回True,失败返回False  
    84.     this.removeByValueAndKey = function(_key,_value) {  
    85.         var bln = false;  
    86.         try {  
    87.             for (i = 0; i this.elements.length; i++) {  
    88.                 if (this.elements[i].value == _value && this.elements[i].key == _key) {  
    89.                     this.elements.splice(i, 1);  
    90.                     return true;  
    91.                 }  
    92.             }  
    93.         } catch (e) {  
    94.             bln = false;  
    95.         }  
    96.         return bln;  
    97.     };  
    98.   
    99.     //获取指定KEY的元素值VALUE,失败返回NULL  
    100.     this.get = function(_key) {  
    101.         try {  
    102.             for (i = 0; i this.elements.length; i++) {  
    103.                 if (this.elements[i].key == _key) {  
    104.                     return this.elements[i].value;  
    105.                 }  
    106.             }  
    107.         } catch (e) {  
    108.             return false;  
    109.         }  
    110.         return false;  
    111.     };  
    112.   
    113.     //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL  
    114.     this.element = function(_index) {  
    115.         if (_index 0 || _index >= this.elements.length) {  
    116.             return null;  
    117.         }  
    118.         return this.elements[_index];  
    119.     };  
    120.   
    121.     //判断MAP中是否含有指定KEY的元素  
    122.     this.containsKey = function(_key) {  
    123.         var bln = false;  
    124.         try {  
    125.             for (i = 0; i this.elements.length; i++) {  
    126.                 if (this.elements[i].key == _key) {  
    127.                     bln = true;  
    128.                 }  
    129.             }  
    130.         } catch (e) {  
    131.             bln = false;  
    132.         }  
    133.         return bln;  
    134.     };  
    135.   
    136.     //判断MAP中是否含有指定VALUE的元素  
    137.     this.containsValue = function(_value) {  
    138.         var bln = false;  
    139.         try {  
    140.             for (i = 0; i this.elements.length; i++) {  
    141.                 if (this.elements[i].value == _value) {  
    142.                     bln = true;  
    143.                 }  
    144.             }  
    145.         } catch (e) {  
    146.             bln = false;  
    147.         }  
    148.         return bln;  
    149.     };  
    150.       
    151.     //判断MAP中是否含有指定VALUE的元素  
    152.     this.containsObj = function(_key,_value) {  
    153.         var bln = false;  
    154.         try {  
    155.             for (i = 0; i this.elements.length; i++) {  
    156.                 if (this.elements[i].value == _value && this.elements[i].key == _key) {  
    157.                     bln = true;  
    158.                 }  
    159.             }  
    160.         } catch (e) {  
    161.             bln = false;  
    162.         }  
    163.         return bln;  
    164.     };  
    165.   
    166.     //获取MAP中所有VALUE的数组(ARRAY)  
    167.     this.values = function() {  
    168.         var arr = new Array();  
    169.         for (i = 0; i this.elements.length; i++) {  
    170.             arr.push(this.elements[i].value);  
    171.         }  
    172.         return arr;  
    173.     };  
    174.       
    175.     //获取MAP中所有VALUE的数组(ARRAY)  
    176.     this.valuesByKey = function(_key) {  
    177.         var arr = new Array();  
    178.         for (i = 0; i this.elements.length; i++) {  
    179.             if (this.elements[i].key == _key) {  
    180.                 arr.push(this.elements[i].value);  
    181.             }  
    182.         }  
    183.         return arr;  
    184.     };  
    185.   
    186.     //获取MAP中所有KEY的数组(ARRAY)  
    187.     this.keys = function() {  
    188.         var arr = new Array();  
    189.         for (i = 0; i this.elements.length; i++) {  
    190.             arr.push(this.elements[i].key);  
    191.         }  
    192.         return arr;  
    193.     };  
    194.       
    195.     //获取key通过value  
    196.     this.keysByValue = function(_value) {  
    197.         var arr = new Array();  
    198.         for (i = 0; i this.elements.length; i++) {  
    199.             if(_value == this.elements[i].value){  
    200.                 arr.push(this.elements[i].key);  
    201.             }  
    202.         }  
    203.         return arr;  
    204.     };  
    205.       
    206.     //获取MAP中所有KEY的数组(ARRAY)  
    207.     this.keysRemoveDuplicate = function() {  
    208.         var arr = new Array();  
    209.         for (i = 0; i this.elements.length; i++) {  
    210.             var flag = true;  
    211.             for(var j=0;j<arr.length;j++){  
    212.                 if(arr[j] == this.elements[i].key){  
    213.                     flag = false;  
    214.                     break;  
    215.                 }   
    216.             }  
    217.             if(flag){  
    218.                 arr.push(this.elements[i].key);  
    219.             }  
    220.         }  
    221.         return arr;  
    222.     };  
    223. }  
     
  • 相关阅读:
    模拟信号的优缺点分析
    PLC控制网关的功能介绍及应用领域
    LoRa无线数传终端的优势
    串口服务器厂家哪家好
    串口转以太网转换器的工作模式
    一个能手机控制水泵的无线远程开关控制器
    以太网IO模块是什么
    支持MQTT的模块有哪些
    常用正交表
    Spring Boot源码(五)以HttpEncodingAutoConfiguration【Http 编码自动配置】为例解释自动配置原理
  • 原文地址:https://www.cnblogs.com/cxxjohnson/p/7239038.html
Copyright © 2011-2022 走看看