數組去重

方法一   set 數組去重
定義一個函數 實現數組去重   返回去重後的數組
     function norepeat( arr ){
            var set = new Set( arr );
            return Array.from( set );(返回去重後的數組)
            return Array.from( new Set(arr) );
            return [...new Set(arr)]; (最短的去重辦法)
   }
      }Set(arr)];
   }
 
方法二
思路:先將數組按照必定的順序排好(升序或降序), 用數組相鄰的兩個數作比較,若是相鄰的兩個數不相等,就將前一個數存入到新數組中
     編寫函數has(arr , num) 判斷數組中是否存在num這個元素,返回布爾類型
function has(arr,num){   
          for( var i = 0 ; i < arr.length ; i++ ){
              if( arr[i] == num ){
                   return true; // 有
              }
          }
          return false;//沒有
     } 
function norepeat2( arr ){
            //先將數組進行排序
            arr.sort( function(a,b){
                  return a-b>0;
            } )
            var newarr = [];//存儲去重後的數據
            //遍歷原數組 比較相鄰的兩個數
            for( var i = 0 ; i < arr.length ; i++ ){
                  if( arr[i] != arr[i+1] ){
                        newarr.push( arr[i] );
                  }
            }
            return newarr;
      }
      
      var res = norepeat2( [34,2,34,2,45,67,45,67,56,2] );
      alert( res );
 
方法三
思路:定義一個空數組 , 遍歷原數組,判斷原數組中的每個數在空數組中是否存在,若是不存在 ,就將這個數 存入到 空數組中  
     編寫函數has(arr , num) 判斷數組中是否存在num這個元素,返回布爾類型
function has(arr,num){   
          for( var i = 0 ; i < arr.length ; i++ ){
              if( arr[i] == num ){
                   return true; // 有
              }
          }
          return false;//沒有
     }   
 function norepeat( arr ){ //arr就是要去重的數組 (原數組)
            var newarr = [];//空數組 用來存儲去重後的數據
            for( var i = 0 ; i <arr.length ; i++ ){
                  //var res =  has( newarr,arr[i] );
                  if( !has( newarr,arr[i] ) ){ //不存在
                        newarr.push( arr[i] );
                  }
            }
            return newarr;
      }
var res = norepeat2( [34,2,34,2,45,67,45,67,56,2] );
     alert( res );
相關文章
相關標籤/搜索