Js實現hashMap

來源:互聯網
上載者:User

標籤:his   輸出   code   length   param   each   格式   bst   color   

/** * MAP對象,實現MAP功能   *   * 介面:   * size()                     擷取MAP元素個數   * isEmpty()                   判斷MAP是否為空白   * clear()                        刪除MAP所有元素   * put(key, value)              向MAP中增加元素(key, value)    * remove(key)                 刪除指定KEY的元素,成功返回True,失敗返回False   * get(key)                       擷取指定KEY的元素值VALUE,失敗返回NULL   * element(index)                  擷取指定索引的元素(使用element.key,element.value擷取KEY和VALUE),失敗返回NULL   * containsKey(key)             判斷MAP中是否含有指定KEY的元素   * containsValue(value)          判斷MAP中是否含有指定VALUE的元素   * values()                       擷取MAP中所有VALUE的數組(ARRAY)   * keys()                     擷取MAP中所有KEY的數組(ARRAY)   *  * 例子:   * var map = new Map();   *  * map.put("key", "value");   * var val = map.get("key")   * ……   *  */function hashmap() {   /**    * 存放資料    */   this.data = new Object();      /**    * 放入一個索引值對    * @param {String} key    * @param {Object} value    */   this.put = function(key, value)    {      this.data[key] = value;   };      /**    * 擷取某鍵對應的值    * @param {String} key    * @return {Object} value    */   this.get = function(key)    {      return this.containsKey(key)?this.data[key]:null;     };      /**    * 刪除一個索引值對    * @param {String} key    */   this.remove = function(key)    {      delete this.data[key];   };      /**    * 遍曆Map,執行處理函數    *     * @param {Function} 回呼函數 function(key,value,index){..}    */   this.each = function(fn){      if(typeof fn != ‘function‘)      {         return;      }      var len = this.data.length;      for(var i=0;i<len;i++)      {         var k = this.data[i];         fn(k,this.data[k],i);      }   };      /**    * 擷取索引值數組(類似Java的entrySet())    * @return 索引值對象{key,value}的數組    */   this.entrys = function()    {      var len = this.data.length;      var entrys = new Array(len);      for (var i = 0; i < len; i++) {         entrys[i] = {            key : i,            value : this.data[i]         };      }      return entrys;   };      /**    * 判斷Map是否為空白    */   this.isEmpty = function()    {      return this.data.length == 0;   };      /**    * 擷取索引值對數量    */   this.size = function()   {      return this.data.length;   };      /**    * 重寫toString ,裝成JSON格式    */   this.toString = function()   {      var s = "[";      for(var i=0;i<this.data.length;i++,s+=‘,‘){         var k = this.data[i];         s += "{‘id‘:‘" + k+"‘,‘value‘:‘"+this.data[k]+"‘}";      }      s=s.substring(0, s.length-1);      if(s!=""){         s+="]";      }      return s;   };      /**    * 輸出Value的值    */   this.values = function (){      var _values= new Array();          for(var key in this.data)        {              _values.push(this.data[key]);          }          return _values;     };      /**    * 擷取keys    */   this.keySet = function (){      var _keys = new Array();          for(var key in this.data)        {              _keys.push(key);          }          return _keys;     };      /**    * 判斷MAP中是否含有指定KEY的元素       */    this.containsKey = function(_key)    {          return (_key in this.data);      };        /**      * 清空Map      */      this.clear = function(){         this.data.length = 0;        this.data = new Object();    }; }

 

Js實現hashMap

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.