数组去重 简单的(利用对象去重) 和typeof的封装

利用对象的属性不会重复的原理进行去重

 把数组里的每一位放在对象里面,当做它的属性名,挨个访问这对象的属性名看有没有这个属性值

<script>
	
      var arr =[1,1,1,2,2,2,2,2,3,3,5,6,7];
      Array.prototype.unique  = function(){
      	var temp = {},
      	    arr = [],
      	    len = this.length;
      	    for(var i = 0;i<len;i++){
      	    	// 拿出当前对象的当前的数组位
      	    	if(!temp[this[i]]){
      	    		temp[this[i]] = 'abc';
      	    		arr.push(this[i]);
      	    	}
      	    }
      	    return arr;
      }
	</script>

typeof的封装

<script>
           function type(target){
           	var ret = typeof(target);
               var template = {
                   	       '[object Object]':'object-Object',
                   	       '[object Array]':'array-Object',
                   	       '[object Number]':'number-Object',
                   	       '[object Boolean]':'boolean-Object',
                   	       '[object String]':'string-Object'
                   }
                   if(target===null)  {
                   	return null;
                   }else if(ret == 'object'){
                   	var str = Object.prototype.toString.call(target);
                   	return template[str];
                   }else{
                   	return ret;
                   }
           }
	</script>

猜你喜欢

转载自blog.csdn.net/du111_/article/details/82793852