什么是字典?

字典也称映射,是一些元素的结合,字典中的元素也是互不相同且不重复的。字典与集合很相似,集合以[值, 值]的形式存储元素,字典则以[键,值]的形式来存储元素。

字典的特点:

  1. 字典中的元素互不相同
  2. 字典中的元素不重复
  3. 字典中的元素以[键,值]的形式存在

生活中字典的典型例子:

生活中字典的例子:如单词和它的释义,地址簿等

js实现定义字典及一些基本方法:

首先是定义字典的结构及一些基本的方法,代码如下:

    //定义字典function Dictionary() {var items = {};//定义一些基本的方法//查看某个键值是否在该字典中this.has = function (key) {return key in items;}//像字典中添加新元素this.set = function (key, value) {items[key] = value;}//通过使用键值从字典中删除该键值所对应的数据值this.delete = function (key) {if (this.has(key)){delete items[key];return true;}return false;}//通过键值查找特定的数值并返回this.get = function (key) {return this.has(key) ? items[key] : undefined;}//将字典所包含的所有数值以数组的形式返回this.values = function () {var values = [];for (var k in items){if (this.has(k)){values.push(items[k]);}}return values;}//将字典所包含的所有键值以数组的形式返回this.keys = function () {return Object.keys(items);}//将这个字典中的所有元素都删除this.clear = function () {items = {};}//返回字典所包含元素的数量this.size = function () {return items.length;}//返回items变量this.getItems = function () {return items;}}

下面是简单的使用Dictionary类,代码如下:

//使用Dictionary类var dictionary = new Dictionary();//给新的字典添加三个元素dictionary.set('Tom','tom@email.com');dictionary.set('jack','jack@email.com');dictionary.set('rose','rose@email.com');//查看字典是否有Tom这个键值console.log(dictionary.has('Tom'));//输出true//返回字典所有元素的键值console.log(dictionary.keys());//输出['Tom','Jack','rose']//返回字典所有元素的数值console.log(dictionary.values());//输出['tom@email.com','jack@email.com','rose@email.com']//返回字典中某个键值所对应的数值console.log(dictionary.get('rose'));//输出rose@email.com//返回字典的大小console.log(dictionary.size());//输出3//删除某个键值所对应的元素dictionary.delete('rose');console.log(dictionary.keys());//输出['Tom','Jack']console.log(dictionary.values());//输出['tom@email.com','jack@email.com']console.log(dictionary.getItems());//输出 Object{Tom:'tom@email.com',Jack:'jack@email.com'}//清空字典dictionary.clear();console.log(dictionary.size());//输出0

js实现数据结构--字典相关推荐

  1. JavaScript算法与数据结构——字典详解

    字典是一种以键-值对的形式存储数据的数据结构,接下来我们将使用JavaScript实现字典数据结构. 1.定义字典类 由于比较字典数据结构比较简单,就直接上代码好了. class Dictionary ...

  2. 再谈js对象数据结构底层实现原理-object array map set

    2019独角兽企业重金招聘Python工程师标准>>> 如果有java基础的同学,可以回顾下<再谈Java数据结构-分析底层实现与应用注意事项>:java把内存分两种:一 ...

  3. Redis 数据结构-字典源码分析

    2019独角兽企业重金招聘Python工程师标准>>> 相关文章 Redis 初探-安装与使用 Redis 数据结构-字符串源码分析 本文将从以下几个方面介绍 前言 字典结构图 字典 ...

  4. JS版数据结构第三篇(链表)

    链表分为单链表,双链表,以及环形链表,我将分三个模块分别介绍,并有相应的题目对应讲解. 单链表 定义 还是按照老规矩先看一下百度百科对单链表的定义 根据以上文字我们可以得出 单链表是一种链式的数据结构 ...

  5. Javascript学习数据结构--字典

    定义 字典(dictionary)是一些元素的结合.每个元素有一个称作key的域,不同元素的key各不相同. 其抽象数据类型描述为: 抽象数据类型Dictionary { 实例: 具有不同关键字的元素 ...

  6. JavaScript数据结构——字典(Dictionary)

    概念和结构 字典里面的元素都是一个键(key)值(value)对. 字典里面的元素的键(key)不能重复,值(value)可以重复. 字典的操作 字典有八种常用操作,分别为 检查键是否存在 has(k ...

  7. js中数据结构数组Array、映射Map、集合Set、对象、JSON

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js中数据结构 js中原生自带的数据结构比较简单,主要有数组Array.映射Map.集合Set.我们可以根据这三个基本数据结构实 ...

  8. js树形数据结构的搜索功能或获取id

    项目场景: js树形数据结构的搜索 描述: 根据搜索条件筛选树形数据 树形数据: var tree = [{id: '01',text: '广东省',children: [{id: '011',tex ...

  9. js实现数据结构及算法之二叉树(Binary Tree)

    树(Tree) 树是一种非线性的数据结构,分层存储 树常被用来存储具有层级关系的数据,也会被用来存储有序列表等 树和集合一样,不允许相同的元素存在 树由一组以边连接的节点组成 一棵树最上面的节点称为根 ...

最新文章

  1. 没想到,他面试竟然挂在了Spring的这个点上...
  2. python的jupyter的使用教程-Jupyter notebook快速入门教程
  3. 百度网络监控实战:NetRadar横空出世(上)
  4. OpenGL 变换Transformations
  5. (转)git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”...
  6. 运维更简单、更智能,让运维人不再 “拼命”
  7. php使用cookie获取浏览记录,php 使用COOKIE制作浏览记录_PHP教程
  8. 索引sql server_SQL Server索引–系列介绍
  9. Laravel测试驱动开发--功能测试 1
  10. eclipse中点不出来提示
  11. 会自动消失的提示信息
  12. 为什么Android项目mainactivity中有一个变量R_安卓4:第一个安卓程序 AS 安卓项目结构解析 手机运行app 模拟器运行app...
  13. 23个超流行的jQuery相册插件收集
  14. PO系列之 使用XPI_INSPECTOR跟踪PO报错
  15. MATLAB调用Fortran
  16. 必备的查询网址:查征信、婚姻、交友借钱明明白白
  17. zigbee PRO 事件
  18. numpy创建伪单位矩阵
  19. linux 编译过程中acx_pthread.m4类错误解决办法
  20. 一年365天每天进步 5‰或1%和每天退步 5‰或1%最后的结果分别是多少

热门文章

  1. lattice下载器HW-USBN-2B LATTICE使用说明
  2. 影响超过四百万网络摄像头:Zoom客户端存在0 day漏洞可能导致代码执行
  3. 格式塔心理学--产生和基本观点
  4. 利用VBA实现多个EXCEL表格合并
  5. 调制方式matlab代码_基础的几种实现
  6. Navicat创建MySQL数据库索引教程
  7. python图像增强算法_retinex图像增强算法的研究
  8. matlab之保存图为pdf超出页面大小
  9. 【ODX介绍】-4.1-UDS诊断$10服务在ODX-D诊断描述文件中如何描述
  10. Objective-C Runtime之着魔的UIAlertView