js封装字典

//创建字典map的构造函数,字典也是由键值对组成的
function Dictionary() {
    //字典的属性
    this.items={};

    //字典的操作方法
    //在字典中添加键值对
    Dictionary.prototype.set=function (key,value) {  
        this.items[key]=value;
    }

    //判断该字典中是否由某个key存在
    Dictionary.prototype.has=function (key) {  
        return this.items.hasOwnProperty(key);
    }

    //从字典中移除元素
    Dictionary.prototype.remove=function (key) {  
        //1.移除之前先判断在字典中是否有该元素
        if(!this.has(key)){
            return false;
        }

        //2.有则直接从字典中删除该元素
        delete this.items[key];
        return true;
    }

    //根据key获取对应的value
    Dictionary.prototype.get=function (key) {  
        if(!this.has(key)){
            return undefined;
        }
        //key存在直接返回对应value
        return this.items[key];
    }

    //获取所有的keys
    Dictionary.prototype.keys=function () {  
        return Object.keys(this.items);
    }

    //获取所有的value
    Dictionary.prototype.values=function () {  
        return Object.values(this.items);
    }

    //获取size:其实就是上面提到的keys的大小,有多少个key
    Dictionary.prototype.size=function () {  
        return this.keys().length();
    }

    //清空字典
    Dictionary.prototype.clear=function () { 
         this.items=[];
     }
  
}

/* 在自己封装一个数据结构的套路:如封装树,图,链表,队列,字典等
function Name(){
//借助于说明实现,就定义什么,如,队列借助于数组,则写this.items=[];.
//字典借助于对象,则写this.items={};

     //每个元素又都有自己的结构的,比如树 的节点node,需要写一个内部类,如链表中除了存放元素值,还存放前/后指向
     function node(val){
         //这里面写node的自己属性
         this.val=val;
         this.left=null;
         this.right=null;
     }

     //接下来是封装该数据结构的方法,1判断该元素是否存在,2插入,3删除,4遍历元素,5遍历元素值(键值对形式的写遍历元素值),6获取该数据结构的大小,7清空
     //统一形式如下:
     Name.prototype.方法名=function(形参){  //不需要传参的不用写形参
        //对于插入操作,删除操作,需要先判断该元素是否存在在操作,不存在返回false
     }

     //遍历方法:分为遍历key和遍历value两种,对于直接是建立在数组基础上的,直接遍历数组
     Name.prototype.遍历方法名=function(){
         //元素以对象形式存在的直接使用对象的内置方法,如字典
         this.Object.keys(this.items);
         //遍历所有的值
         this.Object.values(this.items);
     }         
 }   
 */
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值