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程序设计有所帮助。