通俗地说,字典就是键值对[键,值],是键到值的映射关系。javascript
set(key,value):向字典中添加新元素。java
remove(key):经过使用键值来从字典中移除键值对应的数据值。数组
has(key):若是某个键值存在于这个字典中,则返回true,反之则返回false。this
get(key):经过键值查找特定的数值并返回。code
clear():将这个字典中的全部元素所有删除。ip
size():返回字典所包含元素的数量。与数组的length属性相似。原型链
keys():将字典所包含的全部键名以数组形式返回。rem
values():将字典所包含的全部数值以数组形式返回。get
function Dictionary() { // items做为私有变量,是字典的载体 var items = {}; // has方法,若是某个键值存在于这个字典中,则返回true,反之则返回false this.has = function (key) { return key in items; }; // set方法,向字典中添加新元素 this.set = function (key, value) { items[key] = value; }; // remove方法,经过使用键值来从字典中移除键值对应的数据值 this.remove = function(key) { if (this.has(key)) { delete items[key]; return true; } return false; }; // get方法,经过键值查找特定的数值并返回 this.get = function(key) { return this.has(key) ? items[key] : undefined; }; // clear方法,将这个字典中的全部元素所有删除 this.clear = function(){ // 清空字典列表 items = {}; }; // size方法,返回字典所包含元素的数量。与数组的length属性相似 this.size = function(){ // Object.keys不会遍历原型链上的属性 return Object.keys(items).length; }; // keys方法,将字典所包含的全部键名以数组形式返回 this.size = function(){ return Object.keys(items); }; // values方法,将字典所包含的全部数值以数组形式返回 this.values = function() { var values = {}; for (var k in items) { // 用has方法判断,避免遍历到原型链上的属性 if (this.has(k)) { values.push(items[k]); } } return values; }; }