JS hashMap實(shí)例詳解
來(lái)源:易賢網(wǎng) 閱讀:1057 次 日期:2016-06-22 16:52:49
溫馨提示:易賢網(wǎng)小編為您整理了“JS hashMap實(shí)例詳解”,方便廣大網(wǎng)友查閱!

Hashmap是一種非常常用的、應(yīng)用廣泛的數(shù)據(jù)類(lèi)型。本文通過(guò)實(shí)例代碼給大家介紹js hashMap的相關(guān)知識(shí),具體代碼內(nèi)容如下所示:

代碼如下:

/**

* MAP對(duì)象,實(shí)現(xiàn)MAP功能

*

* 接口:

* size() 獲取MAP元素個(gè)數(shù)

* 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的數(shù)組(ARRAY)

* keys() 獲取MAP中所有KEY的數(shù)組(ARRAY)

*

* 例子:

* var map = new Map();

*

* map.put("key", "value");

* var val = map.get("key")

* ……

*

*/

function hashmap() {

/**

* 存放數(shù)據(jù)

*/

this.data = new Object();

/**

* 放入一個(gè)鍵值對(duì)

* @param {String} key

* @param {Object} value

*/

this.put = function(key, value)

{

this.data[key] = value;

};

/**

* 獲取某鍵對(duì)應(yīng)的值

* @param {String} key

* @return {Object} value

*/

this.get = function(key)

{

return this.containsKey(key)?this.data[key]:null;

};

/**

* 刪除一個(gè)鍵值對(duì)

* @param {String} key

*/

this.remove = function(key)

{

delete this.data[key];

};

/**

* 遍歷Map,執(zhí)行處理函數(shù)

*

* @param {Function} 回調(diào)函數(shù) 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);

}

};

/**

* 獲取鍵值數(shù)組(類(lèi)似Java的entrySet())

* @return 鍵值對(duì)象{key,value}的數(shù)組

*/

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 == ;

};

/**

* 獲取鍵值對(duì)數(shù)量

*/

this.size = function()

{

return this.data.length;

};

/**

* 重寫(xiě)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實(shí)例詳解的相關(guān)知識(shí),希望對(duì)大家有所幫助!

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:JS hashMap實(shí)例詳解
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話(huà):0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)