最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 實現map集合

 更新時間:2015年04月03日 16:42:00   投稿:hebedich  
本文給大家分享的是個人項目中需要的一個小功能,當時經過一番度娘才實現,現在從項目中拿出來,分享給大家,需要的小伙伴快來參考下吧。

前幾天項目上想用map集合一樣的東西,簡單拿對象拼了一下子,今天閑的慌實現一下
大家不要見笑

代碼

var Map = function (){
  /************基礎變量**************/
  var hashmap = {};
  var keys = [];
  var vals = [];
  var entrys = [];
  var size = 0;
  var index = {};
 
  var Entry = function(key,value){
    var entryKey = key;
    var entryValue = value;
    this.getKey = function (){
      return entryKey;
    };
    this.getValue = function(){
      return entryValue;
    };
  };
  /************基本方法 按字母排序**************/
  this.clear = function(key) {
    hashmap[key] = undefined;
    var i = index[key];
    entrys.splice(i,1);
    vals.splice(i,1);
    keys.splice(i,1);
    size --;
  };
   
  this.entrySet = function() {
    return entrys;
  };
   
  this.get = function(key){
    return hashmap[key];
  };
   
  this.isEmpty = function() {
    if(hashmap) return true;
    return false;
  };
 
  this.keySet = function() {
    return keys;
  };
   
  this.put = function(key,value){
    if(!this.get(key)){
      entrys.push(new Entry(key,value));
      keys.push(key);
      vals.push(value);
      index[key] = size;
      size ++;
    } else {
      var i = index[key];
      entrys[i] = new Entry(key,value);
      vals[i] = value;
    }
    hashmap[key] = value;
  };
 
  this.size = function() {
    return size;
  };
   
  this.values = function() {
    return vals;
  };
};
/************擴展方法**************/
Map.prototype = {
  containsKey : function(key) {
    if(this.get(key)) return true;
    return false;
  },
  putAll : function(set) {
    for(var e in set){
      if(set[e]){
        this.put(e,set[e]);
      }
    }
  },
  remove : function(key) {
    var v = this.get(key);
    this.clear(key);
    return v;
  }
};
var h = new Map();
h.put('a',10);
h.put('b',11);
h.put('c',3);
h.put('d',5);
console.info(h.size());
h.clear('a');
console.info(h.containsKey('a'));
console.info(h.containsKey('b'));
console.info(h.size());
 
console.log(h.entrySet());
console.log(h.keySet());
console.log(h.values());
 
for(var i in h.entrySet()){
  var obj = h.entrySet()[i];
  console.log(obj.getKey() + ":" + obj.getValue());
}
  

以上所述就是本文的全部內容了,希望大家能夠喜歡。

相關文章

  • javascript實現可全選、反選及刪除表格的方法

    javascript實現可全選、反選及刪除表格的方法

    這篇文章主要介紹了javascript實現可全選、反選及刪除表格的方法,實例展示了javascript針對表格全選、反選、刪除、隔行變色、刪除提示等常用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • JavaScript中關鍵字 in 的使用方法詳解

    JavaScript中關鍵字 in 的使用方法詳解

    這篇文章主要介紹了JavaScript中關鍵字 in 的使用方法詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • Js 彈出框口并返回值的兩種常用方法

    Js 彈出框口并返回值的兩種常用方法

    有時候我們需要在新窗口執(zhí)行一些代碼并講求將執(zhí)行的結果返回到這個頁面,那么就需要下面的方法,js常用的就是下面這中方法。
    2010-12-12
  • Canvas?drawImage方法實現圖片壓縮詳解

    Canvas?drawImage方法實現圖片壓縮詳解

    這篇文章主要為大家介紹了Canvas?drawImage方法實現圖片壓縮詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • JS實現獲取GIF總幀數的方法詳解

    JS實現獲取GIF總幀數的方法詳解

    如何通過js在上傳前就拿到它的總幀數來判斷呢?本文就跟大家分享一種解決方案,并將其封裝成插件發(fā)布至npm倉庫,快跟隨小編一起學習一下吧
    2022-05-05
  • p5.js臨摹動態(tài)圖形的方法

    p5.js臨摹動態(tài)圖形的方法

    這篇文章主要為大家詳細介紹了p5.js臨摹動態(tài)圖形的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 自己封裝的常用javascript函數分享

    自己封裝的常用javascript函數分享

    這里給大家推薦一個自己封裝的常用的javascript函數,基本上常見的操作都包含在內了,有需要的小伙伴直接拿走使用吧。
    2015-01-01
  • JS處理一些簡單計算題

    JS處理一些簡單計算題

    本篇文章通過JS來實現以下日常用經常用到的計算以及換算等小工具,有興趣的朋友可以學習下。
    2018-02-02
  • JS獲取當前時間戳方法解析

    JS獲取當前時間戳方法解析

    這篇文章主要介紹了JS獲取當前時間戳方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • JS遍歷數組和對象的區(qū)別及遞歸遍歷對象、數組、屬性的方法詳解

    JS遍歷數組和對象的區(qū)別及遞歸遍歷對象、數組、屬性的方法詳解

    本文給大家js遍歷數組和遍歷對象的區(qū)別,一般來說for用來遍歷數組對象而for-in用來遍歷非數組對象。接下來小編給大家?guī)砹薺s遍歷數組和對象的區(qū)別及js遞歸遍歷對象、數組、屬性的方法詳解,一起看下吧
    2016-06-06

最新評論

辽阳市| 喜德县| 扎兰屯市| 白山市| 固原市| 寿光市| 镇原县| 石家庄市| 新晃| 香港| 永胜县| 麦盖提县| 农安县| 广汉市| 南和县| 中阳县| 景洪市| 银川市| 陇西县| 汝南县| 建瓯市| 扎赉特旗| 灵台县| 台湾省| 吴堡县| 永城市| 霍山县| 苏州市| 宜良县| 凤庆县| 乌恰县| 永修县| 来安县| 龙里县| 大宁县| 兴仁县| 花莲市| 太湖县| 抚州市| 宜宾市| 曲松县|