字典中存储的是[key,value],其中键名是用来查询特定的元素的。字典和集合很类似,只是集合以[value,value]的格式来存储数据的。字典也叫做映射。 this
下面经过一个实际例子来建立而且使用一下字典。 spa
function Dictionary(){ 对象
var items = {}; 索引
this.set = function(key, value){ ip
items[key] = value; //以键做为索引来存储数据 rem
}; get
this.remove = function(key){ it
if (this.has(key)){ io
delete items[key]; console
return true;
}
return false;
};
this.has = function(key){
return items.hasOwnProperty(key);
//return value in items;
};
this.get = function(key) {
return this.has(key) ? items[key] : undefined;
};
this.clear = function(){
items = {};
};
this.size = function(){
return Object.keys(items).length;
};
this.keys = function(){
return Object.keys(items);
};
this.values = function(){
var values = [];
for (var k in items) {
if (this.has(k)) {
values.push(items[k]);
}
}
return values;
};
this.each = function(fn) {
for (var k in items) {
if (this.has(k)) {
fn(k, items[k]);
}
}
};
this.getItems = function(){
return items;
}
}
var dictionary = new Dictionary();
dictionary.set('Gandalf', 'gandalf@email.com');
dictionary.set('John', 'johnsnow@email.com');
dictionary.set('Tyrion', 'tyrion@email.com');
console.log(dictionary.has('Gandalf'));
console.log(dictionary.size());
console.log(dictionary.keys());
console.log(dictionary.values());
console.log(dictionary.get('Tyrion'));
dictionary.remove('John');
console.log(dictionary.keys());
console.log(dictionary.values());
console.log(dictionary.getItems()); //打印输出items对象的内部结构