DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> js模擬hashtable的簡單實例介紹
js模擬hashtable的簡單實例介紹
編輯:JavaScript綜合知識     

 本篇文章主要是對js模擬hashtable的簡單實例進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

 代碼如下: function Hashtable()//自定義hashtable {     this._hash = new Object();     this.add = function(key, value) {         if (typeof (key) != "undefined") {             if (this.contains(key) == false) {                 this._hash[key] = typeof (value) == "undefined" ? null : value;                 return true;             } else {                 return false;             }         } else {             return false;         }     }     this.remove = function(key) { delete this._hash[key]; }     this.count = function() { var i = 0; for (var k in this._hash) { i++; } return i; }     this.items = function(key) { return this._hash[key]; }     this.contains = function(key) { return typeof (this._hash[key]) != "undefined"; }     this.clear = function() { for (var k in this._hash) { delete this._hash[k]; } } }    代碼如下: // js哈希表 function HashTable() {       this.ObjArr = {};       this.Count = 0;       //添加     this.Add = function(key, value) {         if (this.ObjArr.hasOwnProperty(key)) {             return false; //如果鍵已經存在,不添加         }         else {             this.ObjArr[key] = value;             this.Count++;             return true;         }     }       //是否包含某項     this.Contains = function(key) {         return this.ObjArr.hasOwnProperty(key);     }       //取某一項 其實等價於this.ObjArr[key]     this.GetValue = function(key) {         if (this.Contains(key)) {             return this.ObjArr[key];         }         else {             throw Error("Hashtable not cotains the key: " + String(key)); //腳本錯誤             //return;         }     }       //移除     this.Remove = function(key) {         if (this.Contains(key)) {             delete this.ObjArr[key];             this.Count--;         }     }       //清空     this.Clear = function() {         this.ObjArr = {}; this.Count = 0;     } }   測試代碼: //員工 function employee(id, userName) {     this.id = id;     this.userName = userName; }   function test() {       var ht = new HashTable();     var tmpEmployee = null;     for (var i = 1; i < 6; i++) {         tmpEmployee = new employee(i, "Employee_" + i);         ht.Add(i, tmpEmployee);     }     for (var i = 1; i <= ht.Count; i++) {         alert(ht.GetValue(i).userName); //其實等價於ht.ObjArr[i].userName         //alert(ht.ObjArr[i].userName);     }     ht.Remove(1);     alert(ht.Contains(1)); //false     alert(ht.Contains(2)); //true     //alert(ht.GetValue(1)); //異常     var result = ht.GetValue(2);     if (result != null) {         alert("Employee Id:" + result.id + ";UserName:" + result.userName);     }     ht.Add(2, "這一個key已經存在!"); //Add無效     //ht.Clear(); //清空     alert(ht.Count);   }    
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved