js实现字典

字典

字典是一种以键 - 值对形式存储数据的数据结构
JavaScript 的 Object 类就是以字典的形式设计的。本章将使用 Object 类本身的特性,实现
一个 Dictionary 类,让这种字典类型的对象使用起来更加简单。你也可以只使用数组和
对象来实现本章展示的方法,但是定义一个 Dictionary 类更方便,也更有意思。

实现

Dictionay 类的基础是 Array 类,而不是 Object 类。如果我们想对字典中的键排序,而 JavaScript 中是不能对对象的属性进行排序的。但是也不要忘记,JavaScript 中一切皆对象,数组也是对象。

var Dictionary = function () {
    this.dateStore = new Array();
}

Dictionary.prototype = {
    //添加
    add: function (key, value) {
        this.dateStore[key] = value;
    },
    //查找
    find: function (key) {
        return this.dateStore[key];
    },
    //移除
    remove: function (key) {
        delete this.dateStore[key]
    },
    //展示
    showAll: function () {
        var str = ''
        //通过sort对字典进行排序,输出的是有序的字典
        for (var key of Object.keys(this.dateStore).sort()) {
            str += `${key}:${this.dateStore[key]}    `;
        }
        return str;
    },
    //数量
    count: function () {
        //不是用length的原因是?这是因为当键的类型为字符串时, length 属性就不管用了
        var count = 0;
        for (var key of Object.keys(this.dateStore)) {
            count++;
        }
        return count;
    },
    //清湖
    clear: function () {
        for (var key of Object.keys(this.dateStore)) {
            delete this.dateStore[key];
        }
    },
}

注意: 字典可以排序,通过数组可以排序,在获取字典的key时对字典进行排序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值