国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 18:54:18
字體:
來源:轉載
供稿:網友

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

 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲松县| 珲春市| 剑河县| 林口县| 江安县| 尼玛县| 东兰县| 酉阳| 绥宁县| 英吉沙县| 河津市| 察哈| 西昌市| 武功县| 布拖县| 抚顺市| 广灵县| 宁明县| 和硕县| 湘潭县| 宝清县| 水城县| 扎囊县| 景泰县| 江阴市| 大悟县| 蕉岭县| 大邑县| 都江堰市| 惠来县| 光山县| 延安市| 通许县| 东阳市| 嵩明县| 镇康县| 古蔺县| 兴宁市| 明光市| 礼泉县| 兴国县|