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

一、
1.構(gòu)建一個(gè)新的數(shù)組存放結(jié)果
2.for循環(huán)中每次從原數(shù)組中取出一個(gè)元素,用這個(gè)元素循環(huán)與結(jié)果數(shù)組對(duì)比
3.若結(jié)果數(shù)組中沒(méi)有該元素,則存到結(jié)果數(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)建一個(gè)新的數(shù)組存放結(jié)果
2.創(chuàng)建一個(gè)空對(duì)象
3.for循環(huán)時(shí),每次取出一個(gè)元素與對(duì)象進(jìn)行對(duì)比,如果這個(gè)元素不重復(fù),則把它存放到結(jié)果數(shù)組中,同時(shí)把這個(gè)元素的內(nèi)容作為對(duì)象的一個(gè)屬性,并賦值為1,存入到第2步建立的對(duì)象中。

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;
    }

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

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

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

// 將相同的值相鄰,然后遍歷去除重復(fù)值 
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; 
} 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容