国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中實現Map的示例代碼

2019-11-20 11:35:30
字體:
來源:轉載
供稿:網友

不廢話了,直接貼代碼了。

代碼一:

var map=new Map();map.put("a","A");map.put("b","B");map.put("c","C");map.get("a"); //返回:Amap.entrySet() // 返回Entity[{key,value},{key,value}]map.containsKey('kevin') //返回:false
function Map() {   this.keys = new Array();   this.data = new Object();   /**    * 放入一個鍵值對    * @param {String} key    * @param {Object} value    */   this.put = function(key, value) {     if(this.data[key] == null){       this.keys.push(key);       this.data[key] = value;     }else{       this.data[key]=this.data[key];     }     return true;   };   /**    * 獲取某鍵對應的值    * @param {String} key    * @return {Object} value    */   this.get = function(key) {     return this.data[key];   };   /**    * 刪除一個鍵值對    * @param {String} key    */   this.remove = function(key) {     for(var i=0;i<this.keys.length;i++){       if(key===this.keys[i]){         var del_keys= this.keys.splice(i,1);         for(k in del_keys){           this.data[k] = null;         }         return true;       }     }     return false;   };   /**    * 遍歷Map,執行處理函數    *    * @param {Function} 回調函數 function(key,value,index){..}    */   this.each = function(fn){     if(typeof fn != 'function'){       return;     }     var len = this.keys.length;     for(var i=0;i<len;i++){       var k = this.keys[i];       fn(k,this.data[k],i);     }   };   /**    * 獲取鍵值數組    * @return entity[{key,value},{key,value}]    */   this.entrySet = function() {     var len = this.keys.length;     var entrys = new Array(len);     for (var i = 0; i < len; i++) {       entrys[i] = {         key : this.keys[i],         value : this.data[this.keys[i]]       };     }     return entrys;   };   /**    * 判斷Map是否為空    */   this.isEmpty = function() {     return this.keys.length == 0;   };   /**    * 獲取鍵值對數量    */   this.size = function(){     return this.keys.length;   };   this.containsKey=function(key){     return this.keys.filter(function(v){       if(v===key){         return key;       }     }).length>0;   };   /**    * 重寫toString    */   this.toString = function(){     var s = "{";     for(var i=0;i<this.keys.length;i++){       var k = this.keys[i];       s += k+"="+this.data[k];       if(this.keys.length>i+1){         s+=','       }     }     s+="}";     return s;   };   /**    * 解析字符串到Map    * {a=A,b=B,c=B,}    */   this.parserStringAndAddMap=function(str){     var count=0;     if(str && str.length>0){       str=str.trim();       var startIndex=str.indexOf("{"),endIndex=str.lastIndexOf("}");       if(startIndex!==-1 && endIndex!==-1){         str=str.substring(startIndex+1,endIndex);         var arrs= str.split(",");         for(var i=0;i<arrs.length;i++){           var kv=arrs[i].trim();           if(kv.length>0 && kv.indexOf("=")!==-1){             var kv_arr=kv.split("=");             if(kv_arr.length==2){               if(this.put(kv_arr[0].trim(),kv_arr[1].trim())){                 count++;               }else{                 console.error('error: kv:'+kv);               }             }           }         }       }else{         console.log("data error:"+str);       }     }else{       console.log('data is not empty');     }     return count;   }; } 

代碼二:

Array.prototype.remove = function(s) {  for (var i = 0; i < this.length; i++) {    if (s == this[i])      this.splice(i, 1);  }}/** * Simple Map *  *  * var m = new Map(); * m.put('key','value'); * ... * var s = ""; * m.each(function(key,value,index){ *     s += index+":"+ key+"="+value+"/n"; * }); * alert(s); *  * @author dewitt * @date 2008-05-24 */function Map() {  /** 存放鍵的數組(遍歷用到) */  this.keys = new Array();  /** 存放數據 */  this.data = new Object();  /**   * 放入一個鍵值對   * @param {String} key   * @param {Object} value   */  this.put = function(key, value) {    if(this.data[key] == null){      this.keys.push(key);    }    this.data[key] = value;  };  /**   * 獲取某鍵對應的值   * @param {String} key   * @return {Object} value   */  this.get = function(key) {    return this.data[key];  };  /**   * 刪除一個鍵值對   * @param {String} key   */  this.remove = function(key) {    this.keys.remove(key);    this.data[key] = null;  };  /**   * 遍歷Map,執行處理函數   *    * @param {Function} 回調函數 function(key,value,index){..}   */  this.each = function(fn){    if(typeof fn != 'function'){      return;    }    var len = this.keys.length;    for(var i=0;i<len;i++){      var k = this.keys[i];      fn(k,this.data[k],i);    }  };  /**   * 獲取鍵值數組(類似Java的entrySet())   * @return 鍵值對象{key,value}的數組   */  this.entrys = function() {    var len = this.keys.length;    var entrys = new Array(len);    for (var i = 0; i < len; i++) {      entrys[i] = {        key : this.keys[i],        value : this.data[i]      };    }    return entrys;  };  /**   * 判斷Map是否為空   */  this.isEmpty = function() {    return this.keys.length == 0;  };  /**   * 獲取鍵值對數量   */  this.size = function(){    return this.keys.length;  };  /**   * 重寫toString    */  this.toString = function(){    var s = "{";    for(var i=0;i<this.keys.length;i++,s+=','){      var k = this.keys[i];      s += k+"="+this.data[k];    }    s+="}";    return s;  };}
function testMap(){  var m = new Map();  m.put('key1','Comtop');  m.put('key2','南方電網');  m.put('key3','景新花園');  alert("init:"+m);  m.put('key1','康拓普');  alert("set key1:"+m);  m.remove("key2");  alert("remove key2: "+m);  var s ="";  m.each(function(key,value,index){    s += index+":"+ key+"="+value+"/n";  });  alert(s);}

以上內容通過兩段代碼給大家分享了JavaScript中實現Map,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐陵市| 九江市| 建始县| 永德县| 抚顺市| 鄂托克前旗| 蒙城县| 濮阳县| 彭泽县| 南丹县| 波密县| 大城县| 榆林市| 文昌市| 元谋县| 大埔县| 汤原县| 大荔县| 清新县| 利辛县| 丰顺县| 湖州市| 新乐市| 江陵县| 保亭| 汤阴县| 娄底市| 吉木萨尔县| 方正县| 寻乌县| 柳河县| 九江县| 拜泉县| 安仁县| 明水县| 加查县| 石台县| 毕节市| 广昌县| 甘肃省| 利辛县|