字典(Dictionary)的javascript实现

起因

最近在看《数据结构与算法--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
阅读 6.2k

推荐阅读
全栈编程
用户专栏

自由程序员,技术路线c,delphi, c++,c#,java,php,node.js,python,golang,typescript;超喜欢re...

913 人关注
88 篇文章
专栏主页