亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2016年11月21日 15:52:59   作者:逆心  
本文詳細(xì)介紹javascript哈希表的實例分析及用法。下面就跟小編一起來學(xué)習(xí)下吧

一、javascript哈希表簡介

javascript里面是沒有哈希表的,一直在java,C#中有時候用到了這一種數(shù)據(jù)結(jié)構(gòu),javascript里面若沒有,感覺非常不順手。細(xì)細(xì)看來,其實javascript的object的屬性其實與哈希表非常類似。

如:

var person = {};
person["name"] = "關(guān)羽";

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

加入函數(shù)如下:

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

二、代碼實現(xiàn)

其具體的實現(xiàn)可以查看代碼,都不算很復(fù)雜的東西。

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","關(guān)羽");
$("#div1").text(manHT.getValue("p1"));

 

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

相關(guān)文章

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

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

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

    移動端js觸摸事件詳解

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

    一文帶你了解promise并解決回調(diào)地獄

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

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

    JS可以用來播放多種聲音文件,包括常見的mp3、wav等格式,這篇文章主要給大家介紹了關(guān)于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空數(shù)組的every()方法實踐

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

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

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

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

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

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

    js將當(dāng)前時間格式化為 年-月-日 時:分:秒的實現(xiàn)代碼

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

最新評論