首頁  >  文章  >  web前端  >  js實作HashTable(哈希表)的實例分析

js實作HashTable(哈希表)的實例分析

高洛峰
高洛峰原創
2016-12-06 11:03:23992瀏覽

一、javascript哈希表簡介

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

如:

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

   

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

加入函數如下:

js實作HashTable(哈希表)的實例分析

二、程式碼實作

其具體的實作可以查看程式碼,都不算很複雜的東西。

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"));

   


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn