javascript模拟map输出与去除重复项的方法
本文实例讲述了javascript模拟map输出与去除重复项的方法。分享给大家供大家参考。具体方法如下:
1.Javascriptmap输出
functionMap(){ //private varobj={};//空的对象容器,承装键值对 //put方法 this.put=function(key,value){ obj[key]=value;//把键值对绑定到obj对象上 } //size方法获得map容器的个数 this.size=function(){ varcount=0; for(varattrinobj){ count++; } returncount; } //get方法根据key取得value this.get=function(key){ if(obj[key]||obj[key]===0||obj[key]===false){ returnobj[key]; }else{ returnnull; } } //remove删除方法 this.remove=function(key){ if(obj[key]||obj[key]===0||obj[key]===false){ deleteobj[key]; } } //eachMap变量map容器的方法 this.eachMap=function(fn){ for(varattrinobj){ fn(attr,obj[attr]); } } } //模拟java里的Map varm=newMap(); m.put('01','abc'); m.put('02',false); m.put('03',true); m.put('04',newDate()); //alert(m.size()); //alert(m.get('02')); //m.remove('03'); //alert(m.get('03')); m.eachMap(function(key,value){ alert(key+":"+value); });
2.去除map中重复项
vararr=[2,1,2,10,2,3,5,5,1,10,13];//object //js对象的特性:在js对象中key是永远不会重复的 /* varobj=newObject(); obj.name='z3'; obj.age=20; //alert(obj.name); obj.name='w5'; alert(obj.name); */ //1把数组转成一个js的对象 //2把数组中的值,变成js对象当中的key //3把这个对象再还原成数组 //把数组转成对象 functiontoObject(arr){ varobj={};//私有的对象 varj; for(vari=0,j=arr.length;i<j;i++){ obj[arr[i]]=true; } returnobj; } //把这个对象转成数组 functionkeys(obj){ vararr=[];//私有对象 for(varattrinobj){ if(obj.hasOwnProperty(attr)){//YUI底层代码 arr.push(attr); } } returnarr; } //综合的方法去掉数组中的重复项 functionuniq(newarr){ returnkeys(toObject(newarr)); } alert(uniq(arr));
希望本文所述对大家的javascript程序设计有所帮助。