JS實現陣列去重

2021-09-22 16:31:55 字數 1424 閱讀 9616

1.雙迴圈去重。先將陣列的第乙個元素賦值給乙個新陣列,再用兩個巢狀的for迴圈。從陣列的第二個元素開始比較該元素與新陣列中是否有重複的元素,如果有就跳出當前迴圈;如果沒有就把第二個元素賦值給新的陣列。然後從陣列的第三個元素又開始,如此迴圈下去,最後返回新的陣列(即去重後的陣列)。如果陣列很大的話就不是特別建議使用這種方法,因為這樣很佔記憶體。

let arr = [1,2,2,3,2,5,6]

let newarr = [arr[0]]

for(let i = 1; i < arr.length; i++){

let flage = true

for(let item of newarr){

if(arr[i] === item){

flage = false

break

if(flage)

newarr.push(arr[i])

console.log(newarr)//[1, 2, 3, 5, 6]

2.indexof:定義乙個空的新陣列,迴圈原來陣列中的值,判斷陣列中的值是否在新陣列中,如果不在就把該值放進新陣列,最後再返回新陣列。

let arr = [1,2,2,3,2,5,6]

let newarr =

let len = arr.length

for(let i = 0; i < len; i++){

if(newarr.indexof(arr[i]) === -1){//陣列中的某個值在新陣列中不存在

newarr.push(arr[i])

console.log(newarr)//[1, 2, 3, 5, 6]

3.相鄰元素去重:先將陣列中的元素進行排序,再使用for迴圈,將陣列中的每乙個元素與它的前乙個元素進行比較,如果不相同就把該元素新增到新的陣列中去。

let arr = [1,2,2,3,2,5,6]

let newarr =

let len = arr.length

arr.sort()

for(let i = 0; i < len; i++){

if(arr[i] != arr[i-1]){//陣列中的某個值與它相鄰的元素進行比較

newarr.push(arr[i])

console.log(newarr)//[1, 2, 3, 5, 6]

4.雙迴圈去重:借助set資料結構和array.from(將set結構轉換為陣列)實現。

let arr = [1,2,2,3,2,5,6]

let myset = new set(arr);

let newarr= array.from(myset);

console.log(newarr)//[1, 2, 4, 3, 5]

JS實現陣列去重

方法一,利用物件屬性不能相同的方法進行去重 array.prototype.distinct function result len arr.length for i 0 i arr.length i return result var a 1,2,3,4,5,6,5,3,2,4,56,4,1,2,...

js實現陣列去重

接收兩個引數時,第二個引數可設定開始查詢元素的位置 const beasts ant bison camel duck bison console.log beasts.indexof bison expected output 1 start from index 2 console.log be...

js實現陣列去重

陣列去重即去掉陣列中重複的元素,是web前端工作者在面試過程中和工作中經常會遇到的乙個問題,相信一般的方法大家都會,只不過會存在效率差異問題,下面我就來說說我們常用的幾種陣列去重的方法!function deleterepeat1 arr if has return newarr 方法2,思路 先將...