總結一下陣列去重的幾個方法

2021-10-01 04:14:26 字數 1110 閱讀 4588

這裡是我總結的關於去重的五種辦法 希望對各位有幫助

在這裡 統一 以 var arr = [1,1,1,3,2,1,2,4];為例

具體使用已經封裝了方法 可以呼叫

方法一雙重for迴圈去重

原理 兩兩比較如果相等的話就刪除第二個

例如: 1 1 1 3 2 1 2 4

先讓第乙個1 即arr[0]與後面的乙個個比較 如果後面的值等於arr[0] 刪除後面的值

第一次結束後的結果是 1 3 2 2 4 刪除了後面所有的1

同理 第二次 第三會刪除與自己相同的元素

詳細介紹 看**注釋

1

function norepeat1(arr)

}return arr;

}

方法三

原理:用乙個空陣列去存首次 出現的元素

利用 indexof 屬性 indexof是返回某個指定的字元在字串**現的位置,如果沒有就會返回-1

因此我們可以很好的利用這個屬性 當返回的是 -1時 就讓其存入陣列

function norepeat2(arr)

}return newarr;

}

方法四:

原理:利用物件的思想 如果物件裡沒有這個屬性的話就會返回undefined

利用這個原理當返回的是undefined時 讓其放入陣列 然後在給這個屬性賦值

function norepeat3(arr) ;

var newarr = ;

for(var i = 0; i < arr.length; i++)

}return newarr;

}

方法五

原理:迴圈比較如果相等的讓後面的元素值為0 最後在輸出的時候刪除為0的 這個前提是你的資料裡不能有0 但是凡事可以變通你可以設定任何值替代這個0 這個方法是我當時想到實現的所以沒有進行很好的優化

var newarr = ;

//控制外迴圈

for(var i=0; i}

//去除值為0的

if(arr[i]==0)else

}

陣列去重的方法總結

實現思路 新建乙個陣列,遍歷要去重的陣列,當值不在新陣列的時候 indexof 為 1 就加入該新陣列中 function unique arr return newarr var arr 1,2,2,3,4,4,5,1,3 var newarr unique arr console.log new...

陣列去重的方法總結

方法一 var arr 1,a a b d e 1,0 array.prototype.unique1 function i 4 if repeat return res var arr 1,a a b d e 1,0 console.log arr.unique1 方法二 如果物件屬性不存在,不會...

陣列的去重方法總結(包括物件陣列的去重方法)

陣列的去除在真實專案中是非常的常用,那麼在這裡總結一下物件陣列及基本型別陣列的去重方法,主要利用了物件的鍵值是唯一的乙個特性。1 去重方法一利用陣列的索引對應的值。let arr 2,3,3,3,2,4,2 console.log arr is a instance of arr typeof ar...