javascript 字典(dictionary)算法与说明
来源:互联网 发布:曙光虚拟化软件 编辑:程序博客网 时间:2024/06/05 22:38
字典的介绍
字典是存储不同元素(不重复元素)。在字典中,存储的是[键,值]也就是[key,value],键名就是用来查询特定元素。字典也称为映射。字典如下表格:
字典最简单的现实列子,就是电话本。人名就是键名,电话就是值。一一对应。通过查找人名获得电话号码。
通常为了使字典更好用,会加入 类型(type)说明(explain)让字典更加好用。
字典算法实例
字典实例一些操作增删改查。
var dictionary = new Dictionary();dictionary.set('Gandalf', 'gandalf@email.com');dictionary.set('John', 'johnsnow@email.com');dictionary.set('Tyrion', 'tyrion@email.com');//{'Gandalf':'gandalf@email.com','John', 'johnsnow@email.com','Tyrion', 'tyrion@email.com'}dictionary.has('Gandalf'); //truedictionary.size(); //3dictionary.keys(); //["Gandalf", "John", "Tyrion"]dictionary.values(); //["gandalf@email.com", "johnsnow@email.com", "tyrion@email.com"]dictionary.get('Tyrion'); //outputs tyrion@email.comdictionary.delete('John');//{'Gandalf':'gandalf@email.com','Tyrion', 'tyrion@email.com'}
ES6字典实现代码:
let Dictionary = (function() { const items = {}; class Dictionary { constructor() { } set(key, value) {//向字典中添加新的元素 items[key] = value; } delete(key) {//删除字典中某个指定元素 if(this.has(key)) { delete items[key]; return true; } return false; } has(key) {//如果某个键值存在于这个字典中,则返回true,否则返回false return items.hasOwnProperty(key); } get(key) {//通过键值查找特定的数值并返回。 return this.has(key) ? items[key] : undefined; }; clear() {//将这个字典中的所有元素全部删除。 items = {}; } size() {//返回字典所包含元素的数量。 return Object.keys(items).length; } keys() {//将字典所包含的所有键名以数组形式返回。 return Object.keys(items); } values() {//将字典所包含的所有数值以数组形式返回。 var values = []; for(var k in items) { if(this.has(k)) { values.push(items[k]); } } return values; } each(fn) {//遍历每个元素并且执行方法 for(var k in items) { if(this.has(k)) { fn(k, items[k]); } } } getItems() {//返回字典 return items; } } return Dictionary;})();
阅读全文
1 0
- javascript 字典(dictionary)算法与说明
- javascript字典数据结构Dictionary实现
- 数据结构与算法JavaScript - 字典
- hashtable 与字典表Dictionary
- javascript 红黑树算法与说明
- 字典与集合(Dictionary与Collection)
- 字典(dictionary)与映射(map)
- dictionary字典
- dictionary字典
- Dictionary 字典
- dictionary字典
- C#中Dictionary泛型字典说明和使用方法
- javascript 栈(Stacks)算法与说明
- javascript 队列(queue)算法与说明
- javascript 链表(lineked lists)算法与说明
- javascript 集合(set)算法与说明
- javascript 散列表(Hashes)算法与说明
- javascript 二叉树(Trees)算法与说明
- Linux跨文本命令执行
- 【C#】每日知识点-正则表达式
- Java OOP
- Thinking in java读书笔记-线程(一)
- JavaScript中的常用高阶函数
- javascript 字典(dictionary)算法与说明
- Win8.1使用VMware虚拟网卡无法安装解决方法
- 微服务的4个设计原则和19个解决方案
- String,StringBuffer与StringBuilder的区别
- redis 后台缓存技术,整合进入spring
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- POJ 1990 MooFest
- AsyncTask的执行步骤
- Ajax方式和jsonp的实现区别