1、利用es6中set去重let arr=[1,1,2,3,4,4,5]
arr=[...new
set(arr)]
console.log(arr)
2、利用兩個for迴圈巢狀,然後splice去重(es5中最常用)
先定義乙個包含原始陣列第乙個元素的陣列,然後遍歷原始陣列,將原始陣列中的每個元素與新陣列中的每個元素進行比對,
如果不重複則新增到新陣列中,最後返回新陣列;因為它的時間複雜度是o(n^2),如果陣列長度很大,那麼將會非常耗費記憶體
3、利用indexof去重1 陣列內是否有該元素,有返回1,沒有返回-1陣列的indexof()方法可返回某個指定的元素在陣列中首次出現的位置。該方法首先定義乙個空陣列res,
然後呼叫indexof方法對原來的陣列進行遍歷判斷,如果元素不在res中,則將其push進res中,
最後將res返回即可獲得去重的陣列
新建乙個空的結果陣列,
for迴圈原陣列,判斷結果陣列是否存在當前元素,如果有相同的值則跳過,不相同則push進陣列。
利用indexof去重2
利用indexof檢測元素在陣列中第一次出現的位置是否和元素現在的位置相等,如果不等則說明該元素是重複元素
4、利用sort 利用sort()排序方法,然後根據排序後的結果進行遍歷及相鄰元素比對。
這種方法首先呼叫了陣列的排序方法sort(),
然後根據排序後的結果進行遍歷及相鄰元素比對,如果相等則跳過改元素,直到遍歷結束
5、利用includes 檢測陣列是否有某個值
6、利用filter 過濾器
7、利用遞迴去重
8、利用map
9、reduce+includes
10、利用物件屬性去重
建立空物件,遍歷陣列,將陣列中的值設為物件的屬性,並給該屬性賦初始值1,每出現一次,對應的屬性值增加1,
這樣,屬性值對應的就是該元素出現的次數了
11 array.from與set去重
陣列去重的方法
我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍歷當前陣列 retu...
陣列去重的方法
1.第一種方法 有乙個需要去掉重複元素的陣列arr,定義乙個新陣列res,迴圈遍歷arr陣列中的每乙個元素,看res中是否存在,如果不存在,則push進去 function repeat arr repeat 1,3,5,7,9,12,15,21,34 2.利用物件屬性去重 每次迴圈取出原陣列的元素...
陣列去重的方法
陣列去重var ary 1,23,4,2,33,1,2,44,3,2,3 ary.sort function a,b 返回的是排好序的陣列 for var i 0 iif ary i ary i 1 var ary 1,23,4,2,33,1,2,44,3,2,3 var arr2 for var ...