博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我对JS字典的简单学习
阅读量:7199 次
发布时间:2019-06-29

本文共 1688 字,大约阅读时间需要 5 分钟。

我对JS字典的简单学习

字典的概念

集合、字典和散列表都可以来存储不重复的值。

在集合中我们使用[值,值]来保存,在字典和散列表中使用[键,值]来存储数据。

字典也被称为映射

ES6中有集合Set类的实现,也有字典Map类的实现。

function  Dictionary() {  var items = {};}

相关操作方法

实现has(key)方法,判断某个键值是否在这个字典中,有则返回true。

this.has = function(key) {  return key in items;}

实现set(key, value)方法,向字典中添加新元素。

this.set = function(key, value) {  items[key] = value;}

实现remove(key)方法,从字典中移除键值对应的数据值。

this.remove = function(key) {  if(this.has(key)) {    delete items[key];    return true;  }  return false;}

实现get(key)方法,查找特定的值。

this.get = function(key) {  return this.has(key) ? items[key] : undefined;}

引申:undefinednull不一样,null表示变量没有值,undefined表示变量被声明但未赋值。

实现values()方法,将字典所有的值以数组的形式返回。

this.values = function() {  var values = [];  for(var k in items) {    if(this.hasOwnProperty(k)) {      values.push(items[key]);    }  }  return values;}

clear(),size(),keys()方法与Set类一致,这里不讨论了。

实现getItems()方法

this.getItems = function() {  return items;}

使用Dictionary类

创建一个类的实例,然后给它添加三条电子邮件地址。

var dictionary = new Dictionary();dictionary.set('Gandalf', 'gandalf@email.com');dictionary.set('John', 'John@email.com');dictionary.set('Tyrion', 'Tyrion@email.com');

使用方法

console.log(dictionary.has('Gandalf')); //trueconsole.log(dictionary.size()); //3console.log(dictionary.keys()); //['Gandalf', 'John', 'Tyrion'];console.log(dictionary.values()); //['Gandalf@email.com', John@email.com', 'Tyrion@email.com']console.log(dictionary.get('Tyrion')); //Tyrion@email.com

执行以下代码

dictionary.remove('John');console.log(dictionary.keys()); //['Gandalf', 'Tyrion']console.log(dictionary.values()); //['Gandalf@email.com', 'Tyrion@email.com']console.log(dictionary.getItems()); //{Gandalf: 'Gandalf@email.com', Tyrion: 'Tyrion@email.com'}

转载地址:http://oezum.baihongyu.com/

你可能感兴趣的文章
支付宝体验设计精髓. 导读
查看>>
阿里云文件存储助力悦跑圈上云之成功案例
查看>>
MySQL · 8.0.0新特性 · ROLE
查看>>
使用Python实现Hadoop MapReduce程序
查看>>
获取 iOS模拟器 里的安装包
查看>>
android p 模拟器开启刘海模式
查看>>
Oracle 11G在用EXP 导出时,空表不能导出解决
查看>>
为TWaver HTML5的Tree组件增加鼠标滑过效果
查看>>
怎样收集有用的QQ号码为我所用
查看>>
web开发小记2:js触发css过渡
查看>>
hive-极致优化(二)-解释计划类别
查看>>
ajax跨域
查看>>
webpack4配置详解之常用插件分享
查看>>
phalcon7 阅读理解
查看>>
消息中间件 RocketMQ源码解析:Message顺序发送与消费
查看>>
PHPCMS自带框架学习
查看>>
spark源码学习
查看>>
git pull/push 因提交文件内容过大而失败的解决方案
查看>>
Postgres 数据库操作备忘
查看>>
Idea 安装 findbugs 插件 与 代码扫描 导出 html/xml
查看>>