function Dictionary(){
this.dataStore = new Array();
this.add = add;
this.find = find;
this.remove = remove;
this.showAll = showAll;
this.count = count;
this.clear = clear;
}
function add(key, value){
this.dataStore[key] = value;
}
function find(key){
return this.dataStore[key];
}
function remove(key){
delete this.dataStore[key];
}
function showAll(){
// 调用Object类的keys()方法可以返回传入参数中存储的所有键
var datakeys = Array.prototype.slice.call(Object.keys(this.dataStore));
for(var key in datakeys){
log(datakeys[key] + " -> " + this.dataStore[datakeys[key]]);
}
log("------");
for(var key in datakeys.sort()){
log(datakeys[key] + " -> " + this.dataStore[datakeys[key]]);
}
}
// 当键的类型为字符串时,length属性就不管用了
function count(){
var n = 0;
for(var key in Object.keys(this.dataStore)){
++n;
}
return n;
}
function clear(){
Object.keys(this.dataStore).forEach(function(key){
delete this.dataStore[key];
}, this);
}
var log = console.log;
var pbook = new Dictionary();
pbook.add("Late", "123");
pbook.add("Autumn", "456");
pbook.add("Eric", "789");
log("All: " + pbook.count());
pbook.showAll();
log("\n");
log("查找Eric的内容: ");
log("Eric's number: " + pbook.find("Eric"));
log("\n");
log("删除Eric: ");
pbook.remove("Eric");
pbook.showAll();
log("\n");
pbook.clear();
log("All: " + pbook.count());