一个简单的JavaScript Map实例(分享)
用js写了一个Map,带遍历功能,请大家点评下啦。
//map.js
Array.prototype.remove=function(s){ for(vari=0;i<this.length;i++){ if(s==this[i]) this.splice(i,1); } } /** *SimpleMap * * *varm=newMap(); *m.put('key','value'); *... *vars=""; *m.each(function(key,value,index){ *s+=index+":"+key+"="+value+"\n"; *}); *alert(s); * *@authordewitt *@date2008-05-24 */ functionMap(){ /**存放键的数组(遍历用到)*/ this.keys=newArray(); /**存放数据*/ this.data=newObject(); /** *放入一个键值对 *@param{String}key *@param{Object}value */ this.put=function(key,value){ if(this.data[key]==null){ this.keys.push(key); } this.data[key]=value; }; /** *获取某键对应的值 *@param{String}key *@return{Object}value */ this.get=function(key){ returnthis.data[key]; }; /** *删除一个键值对 *@param{String}key */ this.remove=function(key){ this.keys.remove(key); this.data[key]=null; }; /** *遍历Map,执行处理函数 * *@param{Function}回调函数function(key,value,index){..} */ this.each=function(fn){ if(typeoffn!='function'){ return; } varlen=this.keys.length; for(vari=0;i<len;i++){ vark=this.keys[i]; fn(k,this.data[k],i); } }; /** *获取键值数组(类似Java的entrySet()) *@return键值对象{key,value}的数组 */ this.entrys=function(){ varlen=this.keys.length; varentrys=newArray(len); for(vari=0;i<len;i++){ entrys[i]={ key:this.keys[i], value:this.data[i] }; } returnentrys; }; /** *判断Map是否为空 */ this.isEmpty=function(){ returnthis.keys.length==0; }; /** *获取键值对数量 */ this.size=function(){ returnthis.keys.length; }; /** *重写toString */ this.toString=function(){ vars="{"; for(vari=0;i<this.keys.length;i++,s+=','){ vark=this.keys[i]; s+=k+"="+this.data[k]; } s+="}"; returns; }; } functiontestMap(){ varm=newMap(); m.put('key1','Comtop'); m.put('key2','南方电网'); m.put('key3','景新花园'); alert("init:"+m); m.put('key1','康拓普'); alert("setkey1:"+m); m.remove("key2"); alert("removekey2:"+m); vars=""; m.each(function(key,value,index){ s+=index+":"+key+"="+value+"\n"; }); alert(s); } //testMap.htm ? <html> <head> <title>TestMap</title> <scriptlanguage="javascript"src="map.js"> </script> </head> <body> <inputtype="button"value="test"onclick="testMap()"> </body> </html>
以上这篇一个简单的JavaScriptMap实例(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。