JavaScript数据结构(字典)

JavaScript数据结构——字典

字典

特点

  • 字典存储的是键值对,主要特点是一一对应
  • 在字典中 key 是不能重复且无序的,而 Value 可以重复。

字典常见的操作

  • set(key,value) 向字典中添加新元素。
  • remove(key) 通过使用键值来从字典中移除键值对应的数据值。
  • has(key) 如果某个键值存在于这个字典中,则返回 true,反之则返回 false
  • get(key) 通过键值查找特定的数值并返回。
  • clear() 将这个字典中的所有元素全部删除。
  • size() 返回字典所包含元素的数量。与数组的 length 属性类似。
  • keys() 将字典所包含的所有键名以数组形式返回。
  • values() 将字典所包含的所有数值以数组形式返回。

代码封装

class Dictonary {
    constructor() {
        this.items = {};
    };
    //- `set(key,value)` 向字典中添加新元素。
    set(key, value) {
        this.items[key] = value;
    };
    //- `remove(key)` 通过使用键值来从字典中移除键值对应的数据值。
    remove(key) {
        delete this.items[key];
    };
    //- `has(key)` 如果某个键值存在于这个字典中,则返回 `true`,反之则返回 `false`。
    has(key) {
        return this.items.hasOwnProperty(key);
    };
    //- `get(key)` 通过键值查找特定的数值并返回。
    get(key) {
            if (this.has(key)) {
                return this.items[key];
            } else {
                return null;
            }
        }
        //- `clear()` 将这个字典中的所有元素全部删除。
    clear() {
            this.items = {};
        }
        ///- `size()` 返回字典所包含元素的数量。与数组的 `length` 属性类似。
    size() {
            return Object.keys(this.items).length;
        }
        //- `keys()` 将字典所包含的所有键名以数组形式返回。
    keys() {
            return Object.keys(this.items)
        }
        //- `values()` 将字典所包含的所有数值以数组形式返回。
    values() {
        return Object.values(this.items);
    }
}

测试代码

const dictonary = new Dictonary();
dictonary.set(1, { name: '小付01' });
dictonary.set(2, { name: '小付02' });// 
dictonary.set(3, { name: '小付03' });
dictonary.set(4, { name: '小付04' });
console.log(dictonary.has(1));// true
console.log(dictonary.get(1));// { name: '小付01' }
console.log(dictonary.keys());// [ '1', '2', '3', '4' ]
console.log(dictonary.values());
// [
//  { name: '小付01' },
//  { name: '小付02' },
//  { name: '小付03' },
//  { name: '小付04' }
// ]
console.log(dictonary.size());// 4
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值