欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年11月21日 15:52:59   作者:逆心  
本文詳細介紹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"));

 

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

相關文章

  • JS removeAttribute()方法實現刪除元素的某個屬性

    JS removeAttribute()方法實現刪除元素的某個屬性

    這篇文章主要介紹了JS removeAttribute()方法實現刪除元素的某個屬性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 移動端js觸摸事件詳解

    移動端js觸摸事件詳解

    這篇文章主要為大家詳細介紹了移動端js觸摸事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 一文帶你了解promise并解決回調地獄

    一文帶你了解promise并解決回調地獄

    這篇文章主要介紹了Promise解決回調地獄問題,文中有詳細的代碼示例,具有一定的參考價值,需要的朋友可以閱讀參考
    2023-04-04
  • JavaScript中播放音頻文件的幾種常用方法

    JavaScript中播放音頻文件的幾種常用方法

    JS可以用來播放多種聲音文件,包括常見的mp3、wav等格式,這篇文章主要給大家介紹了關于JavaScript中播放音頻文件的幾種常用方法,需要的朋友可以參考下
    2023-10-10
  • 利用JS解決ie6不支持max-width,max-height問題的方法

    利用JS解決ie6不支持max-width,max-height問題的方法

    本篇文章主要介紹了利用JS解決ie6不支持max-width,max-height問題的方法。需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • JavaScript 監(jiān)聽textarea中按鍵事件

    JavaScript 監(jiān)聽textarea中按鍵事件

    不同的瀏覽器中的事件監(jiān)聽機制是不同的,以onKeyPress事件為例。
    2009-10-10
  • JavaScript空數組的every()方法實踐

    JavaScript空數組的every()方法實踐

    every()方法用于檢測數組中的所有元素是否都滿足指定條件, 本文主要介紹了JavaScript空數組的every()方法實踐,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 微信小程序-滾動消息通知的實例代碼

    微信小程序-滾動消息通知的實例代碼

    本篇文章主要介紹了微信小程序-滾動消息通知的實例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • js數組合并的8種方法(最全)

    js數組合并的8種方法(最全)

    在JavaScript中,有多種方法可以合并數組,本文主要介紹了8種方法,主要包括concat()、spread operator、push()、unshift()、splice()、Array.from()、Array.prototype.reduce()和ES6的Array.prototype.flat(),感興趣的可以了解一下
    2023-08-08
  • js將當前時間格式化為 年-月-日 時:分:秒的實現代碼

    js將當前時間格式化為 年-月-日 時:分:秒的實現代碼

    這篇文章主要介紹了js將當前時間格式化為 年-月-日 時:分:秒主要是使用js的Date()對象,將系統(tǒng)當前時間格式化為年-月-日 時:分:秒,需要的朋友可以參考下
    2018-01-01

最新評論