Dictionary
字典
by Chris_Walter
JavaScript
//實作Map類別
class Dictionary{
constructor(){
this.items = {};
}
has(key){
return this.items.hasOwnProperty(key);
}
set(key, value){
this.items[key] = value;
}
get(key){//回傳單個屬性的值
return this.has(key) ? this.items[key] : undefined;
}
keys(){//回傳所有鍵的陣列
return Object.keys(this.items);
}
values(){//回傳所有值的陣列
const values = [];
for(let val in this.items){
if(this.has(val)){
values.push(this.items[val]);
}
}
return values;
}
remove(key){
if(this.has(key)){
delete this.items[key];
return true;
}
return false;
}
clear(){//清空物件
this.items = {};
}
size(){//把物件轉成陣列並使用陣列的length方法元素的數量
return Object.keys(this.items).length;
}
getItems(){//返回一個物件包含所有鍵與值
return this.items;
}
}
let d1 = new Dictionary();
d1.set('Book','JavaScript');
d1.set('Food','pizza');
console.log(d1.values());
console.log(d1.size());
console.log(d1.keys());
console.log(d1.getItems());