您好,登錄后才能下訂單哦!
這篇文章主要介紹了Javascript實現(xiàn)偽哈希表的代碼怎么寫的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Javascript實現(xiàn)偽哈希表的代碼怎么寫文章都會有所收獲,下面我們一起來看看吧。
javascript中實現(xiàn)哈希表的代碼:
1 function Hashtable()
2 {
3 this._hash = {};
4 this._count = 0;
5 this.add = function(key, value)
6 {
7 if (this._hash.hasOwnProperty(key)) return false;
8 else { this._hash[key] = value; this._count++; return true; }
9 }
10 this.remove = function(key) { delete this._hash[key]; this._count--; }
11 this.count = function() { return this._count; }
12 this.items = function(key) { if (this.contains(key)) return this._hash[key]; }
13 this.contains = function(key) { return this._hash.hasOwnProperty(key); }
14 this.clear = function() { this._hash = {}; this._count = 0; }
15 }
實現(xiàn)起來很簡單,我們在function中定義了一個_hash對象,該對象有一個屬性key,我們可以給這個屬性賦值,hasOwnProperty方法是javascript提供的方法,用于返回指定的對象中是否包含某個屬性。同時我們在該function中還定義了一個_count對象,用于記錄Hashtable中的數(shù)據(jù)個數(shù),因為我們不想每次獲取Hashtable中的數(shù)據(jù)個數(shù)時都要通過一個內置的循環(huán)來計數(shù),這樣開銷就會小一些,前面說了,哈希算法的一個基本特性就是效率高。delete語句在javascript中用于銷毀一個對象。
下面是使用該Hashtable的一些例子:
1 var hashCompany = new Hashtable();
2
3 //向Hashtable中添加鍵值對
4 function FillData(arr) {
5 hashCompany.clear();
6
7 for (var i = 0; i ﹤ arr.length - 1; i++) {
8 if (arr[i] != "") {
9 t = arr[i].split("`");
10 if (t.length ﹥ 2) {
11 if (!hashCompany.contains(t[0].trim())) {
12 hashCompany.add(t[0].trim(), t[1]);
13 }
14 }
15 }
16 }
17 }
18
19 //遍歷Hashtable并取出值
20 function GetDataFromHash() {
21 var s;
22 if (hashCompany.count ﹥ 0) {
23 for (var i in hashCompany._hash) {
24 s += i + "|";
25 }
26 }
27
28 if (s.length ﹥ 0) {
29 s = s.substring(0, s.length - 2);
30 }
31
32 return s;
33 }
代碼比較簡單,這里就不再多加說明了,其中用到了一個trim函數(shù),下面補上。
//采用正則表達式去除字符串兩端的空格,匿名函數(shù)用于擴展String對象的方法 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } |
關于“Javascript實現(xiàn)偽哈希表的代碼怎么寫”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Javascript實現(xiàn)偽哈希表的代碼怎么寫”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。