陣列去重的幾種簡單方法

2021-10-14 03:51:34 字數 2167 閱讀 6832

今天學習一下陣列去重的幾種方法,雖然不全但是實用

方法一:

let arr=[1

,2,3

,5,4

,8,8

,4,8

,8,2

,2]function

chuanru

(arr)

}return newarr;

} console.

log(

chuanru

(arr));

<

/script>

使用了push與indexof進行去重

push() 方法可向陣列的末尾新增乙個或多個元素,並返回新的長度。

indexof() 方法可返回某個指定的字串值在字串中首次出現的位置。

如果沒有找到匹配的字串則返回 -1

原理

在便利陣列後,如果判斷其沒有相匹配的數值,則將其新增到新陣列中

方法二:

let arr=[1

,2,3

,5,4

,8,8

,4,8

,8,2

,2]function

chuanru

(arr))}

console.

log(

chuanru

(arr));

<

/script>

使用了filter與indexof去重

filter() 方法建立乙個新的陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素。

filter() 不會對空陣列進行檢測。

filter() 不會改變原始陣列。

indexof() 方法可返回某個指定的字串值在字串中首次出現的位置。

如果沒有找到匹配的字串則返回 -1

原理

運用filter方法直接過濾掉重複的數值.,

方法三:

let arr=[1

,2,3

,5,4

,8,8

,4,8

,8,2

,2]function

chuanru

(arr)}}

return arr

}console.

log(

chuanru

(arr));

<

/script>

這是雙層for迴圈加上splice去重

splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。

原理

在寫第二層for迴圈時一定要帶上,上乙個引數加1,別寫成了j=1。在下面判斷時當arr[i]與arr[j]相等,則將arr陣列中後面乙個相同值刪除掉,最終得到全部不一樣值得陣列。一定要記得j–,因為splice會改變陣列長度。

方法四:

let arr=[1

,2,3

,5,4

,8,8

,4,2

,2]function

chuanru

(arr)

} newarr.

push

(arr[i])}

return newarr

}console.

log(

chuanru

(arr));

<

/script>

這是使用雙層for迴圈加上push進行去重

push() 方法可向陣列的末尾新增乙個或多個元素,並返回新的長度。

原理

這個方法其原理是在執行第二層for迴圈時,判斷arr[i]與arr[j]的值如果arr[i]與arr[j]相等時就會跳過接下來的迴圈,重新執行第一層迴圈,除非判斷其與後面的都不相等,才將其新增到新陣列中。

陣列去重的簡單方法

set物件允許你儲存任何型別的唯一值,無論是原始值或者是物件引用。function removerepeatelement arr 注意 要用array.from 來將set物件轉換成乙個真的陣列。function removerepeatelement arr 遍歷源陣列,判斷新陣列中有沒有源陣列...

去重簡單幾種方法

第一種 array unique 移除陣列中重複的值 input array a green red b green blue red result array unique input print r result 以上例程會輸出 array a green 0 red 1 blue 第二種 交換...

幾種陣列去重方法

使用es6中的set是最簡單的去重方法。var arr 1 1,true true true true,15 15,false false undefined,undefined,null null nan nan nan 0 0,a a function arr unique1 arr arr u...