本文实例讲述了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 把这个对象 再还原成数组
// 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程序设计有所帮助。
原文链接:https://www.f2er.com/js/55818.html