资讯专栏INFORMATION COLUMN

字典(Dictionary)的javascript实现

awesome23 / 913人阅读

摘要:编程思路使用了裸对象来进行元素存储实现了两种得到字典长度的方法,一种为变量跟踪,一种为实时计算。自己的实现源代码地址

起因

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92347.html

相关文章

  • Javascript数据结构和算法》笔记-「字典和散列表」

    摘要:我经常在业务代码中把数据处理成这种字典的数据结构获取的方法哈希表在学习了类之后,我们会学习散列表,也就是哈希表。 《Javascript数据结构和算法》笔记-「字典和散列表」 集合、字典、散列表存储的都是「不重复」的数据结构 集合:我们更关注每一个元素的值,并把其作为主要元素 字典:我们用[键,值]的形式来存储数据 散列表: 跟字典类似,也会是用[键,值]的形式来存储数据 但是「字...

    wenyiweb 评论0 收藏0
  • Javascript数据结构与算法(二)

    摘要:基本版的散列表实现在散列表中我们通过散列函数来确定键值对的关系。的实现具体看的数据结构与算法一。散列函数不超过数组的长度下面两个值相同源码地址的数据结构与算法二源码 1集合 1.1集合的实现 集合是由一组无序且唯一(即不能重复)的项组成的。这个数据结构使用了与有限集合相同 的数学概念,但应用在计算机科学的数据结构中。 集合中常用方法列表: add(value):向集合中添加一个新的...

    jlanglang 评论0 收藏0
  • 【前端数据结构基础】字典

    摘要:一构造字典数据结构我们将使用实现字典结构,各部分功能使用注释说明。参考资料数据结构与算法描述第章字典由于书上的源代码出现了错误,因此代码根据实际运行结果做了相应修改。 前言 字典是一种以键-值对形式存储数据的数据结构,如同手机通讯录中,想要寻找一个电话时,只要找到名字就可以找到其电话号码。JavaScript的Object类就是以字典的形式设计的。这里将使用Object类的特性,实现一...

    Acceml 评论0 收藏0
  • 我对JS字典简单学习

    摘要:我对字典的简单学习字典的概念集合字典和散列表都可以来存储不重复的值。字典也被称为映射。中有集合类的实现,也有字典类的实现。相关操作方法实现方法,判断某个键值是否在这个字典中,有则返回。实现方法,将字典所有的值以数组的形式返回。 我对JS字典的简单学习 字典的概念 集合、字典和散列表都可以来存储不重复的值。在集合中我们使用[值,值]来保存,在字典和散列表中使用[键,值]来存储数据。 字典...

    CntChen 评论0 收藏0
  • V8 中 Fast 属性

    摘要:这些是中可用的最快属性。通常来说我们将线性属性存储中存储的属性称为。因此也支持所谓的属性。整数索引属性的处理和命名属性的复杂性相同。 本文为译文,原文地址:http://v8project.blogspot.com...,作者,@Camillo Bruni ,V8 JavaScript Engine Team Blog 在这篇博客中,我们想解释 V8 如何在内部处理 JavaScrip...

    Andrman 评论0 收藏0

发表评论

0条评论

awesome23

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<