javascript模拟map输出与去除重复项的方法
另一花生 人气:0本文实例讲述了javascript模拟map输出与去除重复项的方法。分享给大家供大家参考。具体方法如下:
1.Javascriptmap输出
function Map(){ // private var obj = {} ;// 空的对象容器,承装键值对 // put 方法 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中重复项
var arr = [2,1,2,10,2,3,5,5,1,10,13];//object //js对象的特性:在js对象中key是永远不会重复的 /* var obj = new Object(); obj.name = 'z3'; obj.age = 20 ; //alert(obj.name); obj.name = 'w5'; alert(obj.name); */ // 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程序设计有所帮助。
加载全部内容