集合、字典和散列表可以存储不重复的值。字典和集合相似,集合以[值,值]的形式存储元素,字典是以[键,值]的形式来存储元素,字典也叫做映射
- set(key,value) 添加元素
set(key: any, val: any) {
this.items[key] = val;
}
- delete(key) 通过键删除元素
delete(key: any): boolean {
if (this.has(key)) {
delete this.items[key];
}
return false;
}
- has(key) 根据键判断某个元素是否存在于字典
has(key: any): boolean {
return this.items.hasOwnProperty(key);
}
- values() 将所有元素以数组形式返回
values(): any[] {
let values: any[] = [];
for (let k in this.items) {
if (this.has(k)) {
values.push(this.items[k]);
}
}
return values;
}
完整代码
export default class Dictionary {
items: object;
constructor() {
this.items = {};
}
has(key: any): boolean {
return this.items.hasOwnProperty(key);
}
set(key: any, val: any) {
this.items[key] = val;
}
delete(key: any): boolean {
if (this.has(key)) {
delete this.items[key];
}
return false;
}
get(key: any): any {
return this.has(key) ? this.items[key] : undefined;
}
values(): any[] {
let values: any[] = [];
for (let k in this.items) {
if (this.has(k)) {
values.push(this.items[k]);
}
}
return values;
}
}
- 测试代码
let dic = new Dictionary();
dic.set("angular", "javascrip");
dic.set("spring", "java");
dic.set("flask", "python");
console.log(dic.values());