javacript模拟map输出与去除重复项

1.Javascriptmap输出

function Map(){// privatevar 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 取得valuethis.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里的Mapvar 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));

,每天告诉自己一次,我真的很不错

javacript模拟map输出与去除重复项

相关文章:

你感兴趣的文章:

标签云: