6.字典
字典的特点:
- 字典存储的是键值对,主要的特点是一一对应
- 比如保存个人信息
- 数组形式:
['11','hello','20'] - 字典形式:{"age":20,"name":"kendy",height:120},可以通过key取出value。
- 数组形式:
字典与映射的关系
- 有些编程语言称这种映射关系为字典,比如Python中的dict,Swift中的 Dictonary。
- 有些编程语言中称这种映射关系为 Map,比如 Java 中的 HashMap 和 TreeMap 等。
字典常见的操作
- set(key,value) 向字典中添加新元素。
- remove(key) 通过使用键值来从字典中移除键值对应的数据值。
- has(key) 如果某个键值存在于这个字典中,则返回 true,反之则返回 false。
- get(key) 通过键值查找特定的数值并返回。
- clear() 将这个字典中的所有元素全部删除。
- size() 返回字典所包含元素的数量。与数组的 length 属性类似。
- keys() 将字典所包含的所有键名以数组形式返回。
- values() 将字典所包含的所有数值以数组形式返回。
字典的封装
//封装字典类
function Dictionary(){
//字典属性
this.items = {}
//字典操作方法
//一.在字典中添加键值对
Dictionary.prototype.set = function(key, value){
this.items[key] = value
}
//二.判断字典中是否有某个key
Dictionary.prototype.has = function(key){
return this.items.hasOwnProperty(key)
}
//三.从字典中移除元素
Dictionary.prototype.remove = function(key){
//1.判断字典中是否有这个key
if(!this.has(key)) return false
//2.从字典中删除key
delete this.items[key]
return true
}
//四.根据key获取value
Dictionary.prototype.get = function(key){
return this.has(key) ? this.items[key] : undefined
}
//五.获取所有keys
Dictionary.prototype.keys = function(){
return Object.keys(this.items)
}
//六.size方法
Dictionary.prototype.keys = function(){
return this.keys().length
}
//七.clear方法
Dictionary.prototype.clear = function(){
this.items = {}
}
}