陣列的去重

2021-10-23 05:18:37 字數 1012 閱讀 2684

陣列去重

1var arr = [4,2,5,7,2,6,2,6,6,5]

console.log(arr)

使用迴圈依次比較,遇到重複的就刪除

比較length-1趟

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

console.log(arr)

2var arr = [4,2,4,5,7,2,6,2,6,6,5]

利用物件的屬性名不衝突完成去重

可以把數字作為物件的屬性名

var obj =

console.log(obj[4])

遍歷陣列,判斷當前陣列元素作為物件屬性名是否能取到值

如果取不到,說明這是第一次遍歷到當前值,就把當前元素作為物件屬性名賦個值

如果取到了,說明之前已經賦過值了,也就是說當前值不是第一次出現

var obj = {}

var arr1 =

arr.foreach(function (item) else

})3var arr = [4,2,4,5,7,2,6,2,6,6,5]

es6的寫法,把陣列寫成set,set是es6新增的資料型別,預設不允許重複的

但是把陣列變成set了,再使用array.from重新轉換成陣列,就可以了

var arr1 = array.from(newset(arr))

console.log(arr1)

...擴充套件運算子

var arr2 = [ ...new set(arr) ]

console.log(arr2)

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

js陣列去重以及陣列內物件去重

大家在寫專案的時候一定遇到過這種邏輯需求,就是給乙個陣列進行去重處理,還有一種就是給陣列內的物件根據某乙個屬性,比如id,進行去重,下面我寫了兩個函式,都是可以達到這個效果的,乙個是純es5的去重辦法,乙個是用了es6的array.from new set 和es5的reduce來進行去重 我先定義...

iOS陣列的去重

近來,專案中遇到了陣列去重的需求,自己想了下,建立另乙個陣列加判斷條件來新增原陣列的元素 但是上面那種方法的時間複雜度是 n 2 下面這個方法 nsarray arr 1 2 1 3 1 2 3 2 nsorderedset set nsorderedset alloc initwitharray ...