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

js模擬hashtable的簡單實例

 更新時間:2014年03月06日 08:59:01   作者:  
本篇文章主要是對js模擬hashtable的簡單實例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

復(fù)制代碼 代碼如下:

function Hashtable()//自定義hashtable
{
    this._hash = new Object();
    this.add = function(key, value) {
        if (typeof (key) != "undefined") {
            if (this.contains(key) == false) {
                this._hash[key] = typeof (value) == "undefined" ? null : value;
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
    this.remove = function(key) { delete this._hash[key]; }
    this.count = function() { var i = 0; for (var k in this._hash) { i++; } return i; }
    this.items = function(key) { return this._hash[key]; }
    this.contains = function(key) { return typeof (this._hash[key]) != "undefined"; }
    this.clear = function() { for (var k in this._hash) { delete this._hash[k]; } }
}

復(fù)制代碼 代碼如下:

// js哈希表
function HashTable() {

    this.ObjArr = {};

    this.Count = 0;

    //添加
    this.Add = function(key, value) {
        if (this.ObjArr.hasOwnProperty(key)) {
            return false; //如果鍵已經(jīng)存在,不添加
        }
        else {
            this.ObjArr[key] = value;
            this.Count++;
            return true;
        }
    }

    //是否包含某項
    this.Contains = function(key) {
        return this.ObjArr.hasOwnProperty(key);
    }

    //取某一項 其實等價于this.ObjArr[key]
    this.GetValue = function(key) {
        if (this.Contains(key)) {
            return this.ObjArr[key];
        }
        else {
            throw Error("Hashtable not cotains the key: " + String(key)); //腳本錯誤
            //return;
        }
    }

    //移除
    this.Remove = function(key) {
        if (this.Contains(key)) {
            delete this.ObjArr[key];
            this.Count--;
        }
    }

    //清空
    this.Clear = function() {
        this.ObjArr = {}; this.Count = 0;
    }
}

測試代碼:
//員工
function employee(id, userName) {
    this.id = id;
    this.userName = userName;
}

function test() {

    var ht = new HashTable();
    var tmpEmployee = null;
    for (var i = 1; i < 6; i++) {
        tmpEmployee = new employee(i, "Employee_" + i);
        ht.Add(i, tmpEmployee);
    }
    for (var i = 1; i <= ht.Count; i++) {
        alert(ht.GetValue(i).userName); //其實等價于ht.ObjArr[i].userName
        //alert(ht.ObjArr[i].userName);
    }
    ht.Remove(1);
    alert(ht.Contains(1)); //false
    alert(ht.Contains(2)); //true
    //alert(ht.GetValue(1)); //異常
    var result = ht.GetValue(2);
    if (result != null) {
        alert("Employee Id:" + result.id + ";UserName:" + result.userName);
    }
    ht.Add(2, "這一個key已經(jīng)存在!"); //Add無效
    //ht.Clear(); //清空
    alert(ht.Count);

}

相關(guān)文章

  • JavaScript+Canvas實現(xiàn)帶跳動效果的粒子動畫

    JavaScript+Canvas實現(xiàn)帶跳動效果的粒子動畫

    這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript和Canvas實現(xiàn)帶跳動效果的粒子動畫,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2023-03-03
  • 基于Bootstrap表單驗證功能

    基于Bootstrap表單驗證功能

    這篇文章主要為大家詳細(xì)介紹了基于Bootstrap表單驗證功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • JS獲得一個對象的所有屬性和方法實例

    JS獲得一個對象的所有屬性和方法實例

    下面小編就為大家?guī)硪黄狫S獲得一個對象的所有屬性和方法實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • js點擊列表文字對應(yīng)該行顯示背景顏色的實現(xiàn)代碼

    js點擊列表文字對應(yīng)該行顯示背景顏色的實現(xiàn)代碼

    這篇文章主要介紹了js點擊列表文字對應(yīng)該行顯示背景顏色的實現(xiàn)代碼,感興趣的小伙伴可以參考下
    2015-08-08
  • JavaScript下的時間格式處理函數(shù)Date.prototype.format

    JavaScript下的時間格式處理函數(shù)Date.prototype.format

    這篇文章主要介紹了JavaScript下的時間格式處理函數(shù)Date.prototype.format的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • javascript實現(xiàn)表格增刪改操作實例詳解

    javascript實現(xiàn)表格增刪改操作實例詳解

    這篇文章主要介紹了javascript實現(xiàn)表格增刪改操作的實現(xiàn)方法,以實例形式較為詳細(xì)的分析了javascript操作表格的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • ajax分頁效果(bootstrap模態(tài)框)

    ajax分頁效果(bootstrap模態(tài)框)

    這篇文章主要為大家詳細(xì)介紹了ajax分頁效果的實現(xiàn)方法,結(jié)合bootstrap模態(tài)框使用 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • js動態(tài)添加事件并可傳參數(shù)示例代碼

    js動態(tài)添加事件并可傳參數(shù)示例代碼

    js動態(tài)添加事件可以搜索到很多的相關(guān)文章,不過可以傳參數(shù)的就沒有幾個了,下面有個不錯的示例可以滿足大家對傳參的需求,感興趣的各位不要錯過
    2013-10-10
  • 在uniapp中如何去掉一些不想要的權(quán)限

    在uniapp中如何去掉一些不想要的權(quán)限

    在uniapp中,云打包以后會自動增加一個電話權(quán)限,并且在manifest.json里面也沒有添加這個權(quán)限,怎么添加都添加不上,下面小編給大家分享在uniapp中如何去掉一些不想要的權(quán)限,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Bootstrap零基礎(chǔ)入門教程(三)

    Bootstrap零基礎(chǔ)入門教程(三)

    Bootstrap 是一個用于快速開發(fā) Web 應(yīng)用程序和網(wǎng)站的前端框架。本文重點給大家介紹Bootstrap零基礎(chǔ)入門教程(三) ,非常不錯,具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧
    2016-07-07

最新評論