js幾種數(shù)組去重方法

一、
1.構建一個新的數(shù)組存放結果
2.for循環(huán)中每次從原數(shù)組中取出一個元素,用這個元素循環(huán)與結果數(shù)組對比
3.若結果數(shù)組中沒有該元素,則存到結果數(shù)組中

 function unique(arr){
 var res = [arr[0]];
 for(var i = 1; i < arr.length; i++){
  var repeat = false;
  for(var j = 0; j < res.length; j++){
   if(arr[i] == res[j]){
    repeat = true;
    break;
   }
  }
  if(!repeat){
   res.push(arr[i]);
  }
 }
 return res;
}

二,
1.創(chuàng)建一個新的數(shù)組存放結果
2.創(chuàng)建一個空對象
3.for循環(huán)時,每次取出一個元素與對象進行對比,如果這個元素不重復,則把它存放到結果數(shù)組中,同時把這個元素的內容作為對象的一個屬性,并賦值為1,存入到第2步建立的對象中。

function unique(arr){
        var rs =[];
        var obj={};
        for(var i=0;i<arr.length;i++){
            if (!obj[arr[i]]) {
                obj[arr[i]]=1;
                rs.push(arr[i]);
            }
        }
        return rs;
    }

三,
如果當前數(shù)組的第i項在當前數(shù)組中第一次出現(xiàn)的位置不是i,那么表示第i項是重復的,忽略掉。否則存入結果數(shù)組。

function unique3(array){ 
var n = [array[0]]; //結果數(shù)組 
//從第二項開始遍歷 
for(var i = 1; i < array.length; i++) { 
//如果當前數(shù)組的第i項在當前數(shù)組中第一次出現(xiàn)的位置不是i, 
//那么表示第i項是重復的,忽略掉。否則存入結果數(shù)組 
if (array.indexOf(array[i]) == i) n.push(array[i]); 
} 
return n; 
}

四,
給傳入數(shù)組排序,排序后相同值相鄰,然后遍歷時新數(shù)組只加入不與前一值重復的值。

// 將相同的值相鄰,然后遍歷去除重復值 
function unique4(array){ 
array.sort(); 
var re=[array[0]]; 
for(var i = 1; i < array.length; i++){ 
if( array[i] !== re[re.length-1]){ 
  re.push(array[i]); 
 } 
 } 
 return re; 
} 
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容