一個(gè)簡(jiǎn)單的JavaScript Map實(shí)例(分享)
用js寫(xiě)了一個(gè)Map,帶遍歷功能,請(qǐng)大家點(diǎn)評(píng)下啦。
//map.js
Array.prototype.remove = function(s) {
for (var i = 0; i < this.length; i++) {
if (s == this[i])
this.splice(i, 1);
}
}
/**
* Simple Map
*
*
* var m = new Map();
* m.put('key','value');
* ...
* var s = "";
* m.each(function(key,value,index){
* s += index+":"+ key+"="+value+"\n";
* });
* alert(s);
*
* @author dewitt
* @date 2008-05-24
*/
function Map() {
/** 存放鍵的數(shù)組(遍歷用到) */
this.keys = new Array();
/** 存放數(shù)據(jù) */
this.data = new Object();
/**
* 放入一個(gè)鍵值對(duì)
* @param {String} key
* @param {Object} value
*/
this.put = function(key, value) {
if(this.data[key] == null){
this.keys.push(key);
}
this.data[key] = value;
};
/**
* 獲取某鍵對(duì)應(yīng)的值
* @param {String} key
* @return {Object} value
*/
this.get = function(key) {
return this.data[key];
};
/**
* 刪除一個(gè)鍵值對(duì)
* @param {String} key
*/
this.remove = function(key) {
this.keys.remove(key);
this.data[key] = null;
};
/**
* 遍歷Map,執(zhí)行處理函數(shù)
*
* @param {Function} 回調(diào)函數(shù) function(key,value,index){..}
*/
this.each = function(fn){
if(typeof fn != 'function'){
return;
}
var len = this.keys.length;
for(var i=0;i<len;i++){
var k = this.keys[i];
fn(k,this.data[k],i);
}
};
/**
* 獲取鍵值數(shù)組(類似Java的entrySet())
* @return 鍵值對(duì)象{key,value}的數(shù)組
*/
this.entrys = function() {
var len = this.keys.length;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = {
key : this.keys[i],
value : this.data[i]
};
}
return entrys;
};
/**
* 判斷Map是否為空
*/
this.isEmpty = function() {
return this.keys.length == 0;
};
/**
* 獲取鍵值對(duì)數(shù)量
*/
this.size = function(){
return this.keys.length;
};
/**
* 重寫(xiě)toString
*/
this.toString = function(){
var s = "{";
for(var i=0;i<this.keys.length;i++,s+=','){
var k = this.keys[i];
s += k+"="+this.data[k];
}
s+="}";
return s;
};
}
function testMap(){
var m = new Map();
m.put('key1','Comtop');
m.put('key2','南方電網(wǎng)');
m.put('key3','景新花園');
alert("init:"+m);
m.put('key1','康拓普');
alert("set key1:"+m);
m.remove("key2");
alert("remove key2: "+m);
var s ="";
m.each(function(key,value,index){
s += index+":"+ key+"="+value+"\n";
});
alert(s);
}
//testMap.htm
?
<html>
<head>
<title>Test Map</title>
<script language="javascript" src="map.js">
</script>
</head>
<body>
<input type="button" value="test" onclick="testMap()">
</body>
</html>
以上這篇一個(gè)簡(jiǎn)單的JavaScript Map實(shí)例(分享)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS用斜率判斷鼠標(biāo)進(jìn)入DIV四個(gè)方向的方法
在網(wǎng)上去搜判斷鼠標(biāo)移入div移入移出的方法大同小異,下面小編給大家分享一篇文章關(guān)于js判斷鼠標(biāo)進(jìn)入div方向的代碼,感興趣的朋友一起看看吧2016-11-11
JS組件庫(kù)AlloyTouch實(shí)現(xiàn)圖片輪播過(guò)程解析
這篇文章主要介紹了JS組件庫(kù)AlloyTouch實(shí)現(xiàn)圖片輪播組件過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
antd-mobile ListView長(zhǎng)列表的數(shù)據(jù)更新遇到的坑
這篇文章主要介紹了antd-mobile ListView長(zhǎng)列表的數(shù)據(jù)更新遇到的坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
基于JS實(shí)現(xiàn)限時(shí)搶購(gòu)倒計(jì)時(shí)間表代碼
本文給大家分享一段簡(jiǎn)單的代碼基于js實(shí)現(xiàn)限時(shí)搶購(gòu)倒計(jì)時(shí)間表功能,非常不錯(cuò),代碼簡(jiǎn)單易懂,需要的的朋友參考下吧2017-05-05
如何將一維度數(shù)組轉(zhuǎn)換成三維數(shù)組結(jié)構(gòu)
在開(kāi)發(fā)過(guò)程中,可能會(huì)遇到需要將一維數(shù)組轉(zhuǎn)換為多維數(shù)組的情況,以滿足特定數(shù)據(jù)結(jié)構(gòu)的需求,文章介紹了如何將后端返回的一維列表數(shù)據(jù)通過(guò)編程方法轉(zhuǎn)換成三維數(shù)組結(jié)構(gòu),以適應(yīng)特定的UI展示需求,通過(guò)循環(huán)遍歷和數(shù)據(jù)重組的方式,可以有效地實(shí)現(xiàn)數(shù)組結(jié)構(gòu)的轉(zhuǎn)換2024-09-09
利用原生JS實(shí)現(xiàn)歡樂(lè)水果機(jī)小游戲
這篇文章主要介紹了利用原生JS實(shí)現(xiàn)歡樂(lè)水果機(jī)小游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
用javascript getComputedStyle獲取和設(shè)置style的原理
這兩天用了baidu 百度空間中的彈出窗口js,感覺(jué)不錯(cuò),很強(qiáng)大,很好很簡(jiǎn)單的解決了好幾個(gè)問(wèn)題,界面友好度以及美化也好多了,以前都是硬邦邦window.open();2008-10-10
JavaScript中實(shí)現(xiàn)在光標(biāo)位置插入內(nèi)容的幾種方法
本文主要介紹了在網(wǎng)頁(yè)開(kāi)發(fā)中,如何使用JavaScript在文本輸入框或富文本編輯器的光標(biāo)位置插入內(nèi)容的實(shí)踐,包括獲取光標(biāo)位置的方法,創(chuàng)建文本節(jié)點(diǎn),操作Selection對(duì)象,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10

