字典(Dictionary)的javascript實現

zhoutk發表於2015-09-25

起因

最近在看《資料結構與演算法--javascript描述》,然後上npmjs.org去搜尋,想找合適的庫參考並記錄下來,以備以後用時能拿來即用,最沒有發現很合自己意的,於是就決定自己一一實現出來。

程式設計思路

使用了裸物件datastore來進行元素儲存;
實現了兩種得到字典長度的方法,一種為變數跟蹤,一種為實時計算。

自己的實現

(function(){
    "use strict";

    function Dictionary(){
        this._size = 0;
        this.datastore = Object.create(null);
    }

    Dictionary.prototype.isEmpty = function(){
        return this._size === 0;
    };

    Dictionary.prototype.size = function(){
        return this._size;
    };

    Dictionary.prototype.clear = function(){
        for(var key in this.datastore){
            delete this.datastore[key];
        }
        this._size = 0;
    };

    Dictionary.prototype.add = function(key, value){
        this.datastore[key] = value;
        this._size++;
    };

    Dictionary.prototype.find = function(key){
        return this.datastore[key];
    };

    Dictionary.prototype.count = function(){
        var n = 0;
        for(var key in this.datastore){
            n++;
        }
        return n;
    };

    Dictionary.prototype.remove = function(key){
        delete this.datastore[key];
        this._size--;
    };

    Dictionary.prototype.showAll = function(){
        for(var key in this.datastore){
            console.log(key + "->" + this.datastore[key]);
        }
    };

    module.exports = Dictionary;
})();

原始碼地址

https://github.com/zhoutk/js-data-struct
http://git.oschina.net/zhoutk/jsDataStructs

相關文章