字典中存儲的是[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對象的內部結構