-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dictionary.js
55 lines (54 loc) · 1.19 KB
/
Dictionary.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/**
* author: 蔡东
* createdOn: 2017/11/15
* desc: 字典<数据结构>
*/
// 构造函数模式和原型模式创造字典
function Dictionary(){
this.data = [] // 字典数据
this.size = 0 // 字典元素个数
}
Dictionary.prototype = {
constructor: Dictionary,
add: function(key, val){
this.data[key] = val
++this.size
},
remove: function(key){
delete this.data[key]
--this.size
},
empty: function(){
for(let key in this.data){
delete this.data[key]
}
},
find: function(key){
return this.data[key]
},
keys: function(){
let arr = []
for(let key in this.data){
arr.push(key)
}
return arr.toString()
},
values: function(){
let arr = []
for(let key in this.data){
arr.push(this.data[key])
}
return arr.toString()
},
entries: function(){
let arr = []
for(let key in this.data){
arr.push(`${key} -> ${this.data[key]}`)
}
return arr.toString()
},
length: function(){
return this.size
}
}
const dictionary = new Dictionary()