Hashmap是一種很是經常使用的、應用普遍的數據類型。本文經過實例代碼給你們介紹js hashMap的相關知識,具體代碼內容以下所示:函數
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
/**
* MAP對象,實現MAP功能
*
* 接口:
* size() 獲取MAP元素個數
* isEmpty() 判斷MAP是否爲空
* clear() 刪除MAP全部元素
* put(key, value) 向MAP中增長元素(key, value)
* remove(key) 刪除指定KEY的元素,成功返回True,失敗返回False
* get(key) 獲取指定KEY的元素值VALUE,失敗返回NULL
* element(index) 獲取指定索引的元素(使用element.key,element.value獲取KEY和VALUE),失敗返回NULL
* containsKey(key) 判斷MAP中是否含有指定KEY的元素
* containsValue(value) 判斷MAP中是否含有指定VALUE的元素
* values() 獲取MAP中全部VALUE的數組(ARRAY)
* keys() 獲取MAP中全部KEY的數組(ARRAY)
*
* 例子:
* var map = new Map();
*
* map.put("key", "value");
* var val = map.get("key")
* ……
*
*/
function hashmap() {
/**
* 存放數據
*/
this .data = new Object();
/**
* 放入一個鍵值對
* @param {String} key
* @param {Object} value
*/
this .put = function (key, value)
{
this .data[key] = value;
};
/**
* 獲取某鍵對應的值
* @param {String} key
* @return {Object} value
*/
this .get = function (key)
{
return this .containsKey(key)? this .data[key]: null ;
};
/**
* 刪除一個鍵值對
* @param {String} key
*/
this .remove = function (key)
{
delete this .data[key];
};
/**
* 遍歷Map,執行處理函數
*
* @param {Function} 回調函數 function(key,value,index){..}
*/
this .each = function (fn){
if ( typeof fn != 'function' )
{
return ;
}
var len = this .data.length;
for ( var i=;i<len;i++)
{
var k = this .data[i];
fn(k, this .data[k],i);
}
};
/**
* 獲取鍵值數組(相似Java的entrySet())
* @return 鍵值對象{key,value}的數組
*/
this .entrys = function ()
{
var len = this .data.length;
var entrys = new Array(len);
for ( var i = ; i < len; i++) {
entrys[i] = {
key : i,
value : this .data[i]
};
}
return entrys;
};
/**
* 判斷Map是否爲空
*/
this .isEmpty = function ()
{
return this .data.length == ;
};
/**
* 獲取鍵值對數量
*/
this .size = function ()
{
return this .data.length;
};
/**
* 重寫toString ,裝成JSON格式
*/
this .toString = function ()
{
var s = "[" ;
for ( var i=;i< this .data.length;i++,s+= ',' ){
var k = this .data[i];
s += "{'id':'" + k+ "','value':'" + this .data[k]+ "'}" ;
}
s=s.substring(, s.length-);
if (s!= "" ){
s+= "]" ;
}
return s;
};
/**
* 輸出Value的值
*/
this .values = function (){
var _values= new Array();
for ( var key in this .data)
{
_values.push( this .data[key]);
}
return _values;
};
/**
* 獲取keys
*/
this .keySet = function (){
var _keys = new Array();
for ( var key in this .data)
{
_keys.push(key);
}
return _keys;
};
/**
* 判斷MAP中是否含有指定KEY的元素
*/
this .containsKey = function (_key)
{
return (_key in this .data);
};
/**
* 清空Map
*/
this .clear = function (){
this .data.length = ;
this .data = new Object();
};
}
|
以上所述是小編給你們介紹的js hashMap實例詳解的相關知識,但願對你們有所幫助!字體