javascript模拟map输出与去除重复项的方法

前端之家收集整理的这篇文章主要介绍了javascript模拟map输出与去除重复项的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了javascript模拟map输出去除重复项的方法分享给大家供大家参考。具体方法如下:

1.Javascriptmap输出

方法 this.put = function(key,value){ obj[key] = value ;// 把键值对绑定到obj对象上 } // size 方法 获得map容器的个数 this.size = function(){ var count = 0 ; for(var attr in obj){ count++; } return count ; } // get 方法 根据key 取得value this.get = function(key){ if(obj[key] || obj[key] === 0 || obj[key] === false){ return obj[key]; } else { return null; } } //remove 删除方法 this.remove = function(key){ if(obj[key] || obj[key] === 0 || obj[key] === false){ delete obj[key]; } } // eachMap 变量map容器的方法 this.eachMap = function(fn){ for(var attr in obj){ fn(attr,obj[attr]); } } } //模拟java里的Map var m = new Map(); m.put('01','abc'); m.put('02',false) ; m.put('03',true); m.put('04',new Date());

//alert(m.size());

//alert(m.get('02'));
//m.remove('03');
//alert(m.get('03'));

m.eachMap(function(key,value){
alert(key +" :"+ value);
});

2.去除map中重复项

// 1 把数组转成一个js的对象
// 2 把数组中的值,变成js对象当中的key
// 3 把这个对象 再还原成数组

// 把数组转成对象
function toObject(arr){
var obj = {} ; // 私有的对象
var j ;
for(var i=0,j= arr.length ; i<j; i++){
obj[arr[i]] = true ;
}
return obj ;
}

// 把这个对象转成数组
function keys(obj){
var arr = [] ; // 私有对象
for(var attr in obj){
if(obj.hasOwnProperty(attr)){//YUI底层代码
arr.push(attr);
}
}
return arr ;
}

//综合的方法 去掉数组中的重复项
function uniq(newarr){
return keys(toObject(newarr));
}
alert(uniq(arr));

希望本文所述对大家的javascript程序设计有所帮助。

猜你在找的JavaScript相关文章