国产探花免费观看_亚洲丰满少妇自慰呻吟_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"));

 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永仁县| 秭归县| 板桥市| 东城区| 红安县| 沧源| 唐山市| 成武县| 游戏| 和林格尔县| 牙克石市| 闻喜县| 丹东市| 平定县| 晋州市| 承德市| 吉隆县| 剑阁县| 扬州市| 夏河县| 康马县| 肇东市| 萨嘎县| 定西市| 溧阳市| 天峨县| 南漳县| 泰州市| 苏尼特左旗| 紫阳县| 玛纳斯县| 兴隆县| 美姑县| 南丹县| 长海县| 德钦县| 健康| 长宁区| 云霄县| 丰都县| 阿克|