美文网首页javascript
JS数据结构:字典

JS数据结构:字典

作者: 开车去环游世界 | 来源:发表于2019-03-25 22:46 被阅读0次

字典

字典(Dictionary)是一种以 键-值对 形式存储数据的数据结构 ,就如同我们平时查看通讯录一样,要找一个电话,首先先找到该号码的机主名字,名字找到了,紧接着电话号码也就有了。这里的键就是你用来查找的东西,本例中指代的就是名字,值就是查找得到的结果,也就是对应的电话号码。
其实,JavaScript 中的 Object 类就是以字典的形式设计的,下面我们将会借助 Object 类的特性,自主实现一个 Dictionary 类,让这种字典类型的对象使用起来更加方便。

字典的创建

class Dictionary {
    constructor() {
        this.items = {};
    }

    // 向字典中添加新元素
    set( key, value ) {
        this.items[key] = value;
    }

    // 如果某个键值存在于这个字典中,则返回true,反之则返回false
    has( key ) {
        return key in this.items;
    }

    // 通过键值查找特定的数值并返回
    get( key ) {
        return this.has(key) ? this.items[key] : undefined;
    }

    size() {
        return Object.keys(this.items).length;
    }

    // 将这个字典中的所有元素全部删除
    clear() {
        this.items = {};
    }

    // 通过使用键值来从字典中移除键值对应的数据值
    delete( key ) {
        if( this.has(key) ) {
            delete this.items[key];
            return true;
        }

        return false;
    }

    // keys方法返回在Dictionary类中所有用于标识值的键名
    keys() {
        return Object.keys( this.items );
    }

    // 将字典所包含的所有数值以数组形式返回
    values() {
        let values = [];
        for( let i = 0, keys = Object.keys(this.items); i < keys.length; i++ ) {
            values.push( this.items[keys[i]] );
        }

        return values;
    }

    getItems() {
        return this.items;
    }
}

使用字典

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>字典</title>
    </head>
    <body>
        <p>在字典中,存储的是[键,值] 对,其中键名是用来查询特定元素的。</p>

        <script type="text/javascript" src="Dictionary.js"></script>
        <script type="text/javascript">
            var dictionary = new Dictionary();
            dictionary.set( 'Gandalf', 'gandalf@email.com' );
            dictionary.set( 'John', 'johnsnow@email.com' );
            dictionary.set( 'Tyrion', 'tyrion@email.com' );

            console.log( dictionary.has('Gandalf') );   // true
            console.log( dictionary.size() );

            console.log( dictionary.keys() );
            console.log( dictionary.values() );
            console.log( dictionary.get('Tyrion') );
        </script>
    </body>
</html>

相关文章

  • JS数据结构:字典

    字典 字典(Dictionary)是一种以 键-值对 形式存储数据的数据结构 ,就如同我们平时查看通讯录一样,要找...

  • python 02数据结构

    list数据结构 - 有序的结构体 元组 - 无法修改 字典 - 独有的key-value数据结构 字典常用操作 ...

  • 新2019计划:python学习-字典【4】

    字典 本篇章讲述数据结构字典,主要围绕如何访问字典,如何修改字典,如何删除字典某元素,如何遍历字典,字典的常见方法...

  • Python学习手册 列表和字典

    字典构造技术 关于键值 字典合并,update盲目覆盖相同键,合并不同键 字典删除 用字典存储稀疏数据结构 字典处...

  • redis底层数据组织方式

    底层数据结构 redis底层数据结构有:字典、双端链表、压缩链表、整数集合、跳跃表和字典、整数集合、embstr ...

  • Python3 字典

    ## 字典(dict) -字典属于新的数据结构,称为映射(mapping) - 字典的作用和列表类似,都是用来存储...

  • python基础5-字典

    什么是字典字典(Dictionary)是Python中的内置数据结构字典非常适合表达结构化数据 字典的特点采用键(...

  • 6字典[python基础]

    什么是字典字典(Dictionary)是Python中的内置数据结构字典非常适合表达结构化数据 字典的特点采用键(...

  • 说说 Python 的嵌套式数据结构

    嵌套式数据结构指的是:字典存储在列表中, 或者列表作为值存储在字典中。甚至还可以在字典中嵌套字典。 1 字典列表 ...

  • Golang 实现 Trie (前缀树) leetcode-20

    前缀树,字典树,经典的数据结构。

网友评论

    本文标题:JS数据结构:字典

    本文链接:https://www.haomeiwen.com/subject/khbivqtx.html