js学习之javascript引用类型object--练习模拟Map和数组去重

    xiaoxiao2021-03-25  61

    一.模拟map

    <script type="text/javascript"> function Map(){ //创建一个空对象 var obj = {}; // put 方法存值 this.put = function(key,value){ obj[key] = value; } // 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; } } //删除方法,根据key删除 this.remove = function(key){ if(obj[key] || obj[key] === 0 || obj[key] === false){ delete obj[key]; } } //遍历map的key(value); this.foreach = function(fn){ // fn 为回调函数 for(var attr in obj){ fn(attr,obj[attr]); } } } //实例化map var m = new Map(); //将键值添加到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("03"));   m.remove('03'); alert(m.get('03'));//null   m.foreach(function(key,value){     alert(key + ":" + value);   }) </script>二、数组去重 

    <script type="text/javascript"> // 利用在js对象中 key 是永远不会重复的 的去重方法 unique var arr1 = [1,2,3,4,5,2,1,3] function toObj(arr){ var obj = {}; for(var i=0,j=arr.length;i<j;i++ ){ obj[arr[i]] = true; } return obj; } function toArr(obj){ var arr = []; for(var attr in obj){ if(obj.hasOwnProperty(attr)){ arr.push(attr); } } return arr; } // 利用在js对象中 key 是永远不会重复的 的去重方法 unique function unique(arr){ return toArr(toObj(arr)); } // 调用方法 // unique(arr1); alert( unique(arr1));//1,2,3,4,5 </script>

    转载请注明原文地址: https://ju.6miu.com/read-38162.html

    最新回复(0)