1. 程式人生 > >陣列去重 簡單的(利用物件去重) 和typeof的封裝

陣列去重 簡單的(利用物件去重) 和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>