DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> js實現HashTable(哈希表)的實例分析
js實現HashTable(哈希表)的實例分析
編輯:關於JavaScript     

一、javascript哈希表簡介

javascript裡面是沒有哈希表的,一直在java,C#中有時候用到了這一種數據結構,javascript裡面若沒有,感覺非常不順手。細細看來,其實javascript的object的屬性其實與哈希表非常類似。

如:

var person = {};
person["name"] = "關羽";

我們只需要在其基礎上再封裝一些HashTable的函數,就能夠得到一個精簡版的哈希表。

加入函數如下:

函數名 說明 返回值 add(key,value) 添加項 無 getValue(key) 根據key取值 object remove(key) 根據key刪除一項 無 containsKey(key) 是否包含某個key bool containsValue(value) 是否包含某個值 bool getValues() 獲取所有的值的數組 array getKeys() 獲取所有的key的數組 array getSize() 獲取項總數 int clear() 清空哈希表 無

二、代碼實現

其具體的實現可以查看代碼,都不算很復雜的東西。

function HashTable() {
 var size = 0;
 var entry = new Object();
 this.add = function (key, value) {
 if (!this.containsKey(key)) {
 size++;
 }
 entry[key] = value;
 }
 this.getValue = function (key) {
 return this.containsKey(key) ? entry[key] : null;
 }
 this.remove = function (key) {
 if (this.containsKey(key) && (delete entry[key])) {
 size--;
 }
 }
 this.containsKey = function (key) {
 return (key in entry);
 }
 this.containsValue = function (value) {
 for (var prop in entry) {
 if (entry[prop] == value) {
 return true;
 }
 }
 return false;
 }
 this.getValues = function () {
 var values = new Array();
 for (var prop in entry) {
 values.push(entry[prop]);
 }
 return values;
 }
 this.getKeys = function () {
 var keys = new Array();
 for (var prop in entry) {
 keys.push(prop);
 }
 return keys;
 }
 this.getSize = function () {
 return size;
 }
 this.clear = function () {
 size = 0;
 entry = new Object();
 }
}

簡單使用示例:

var manHT = new HashTable();
manHT.add("p1","劉備");
manHT.add("p2","關羽");
$("#div1").text(manHT.getValue("p1"));

 

以上是本文的全部內容,希望對大家有所幫助!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved