數組去重,通常會在面試的時候纔會碰到,要求手寫數組去重方法的代碼。若是是被提問到,數組去重的方法有哪些?你能答出其中的10種,面試官頗有可能對你另眼相看。前端
在實際項目中碰到的數組去重,通常都是後臺去處理,不多讓前端處理數組去重。雖然運用到的機率較低,但仍是須要了解一下,以防面試的時候被問到。面試
數組去重的方法:數組
1、利用ES6 Set去重(ES6中最經常使用)數據結構
若是不考慮兼容性,這種去重的方法代碼最少。這種方法還沒法去掉「{}」空對象,後面的高階方法會添加去掉重複「{}」的方法。spa
2、利用for嵌套for,而後splice去重(ES5中最經常使用)3d
對象
雙層循環,外層循環元素,內層循環時比較值。值相同時,則刪去這個值。blog
3、利用indexOf去重
排序
新建一個空的結果數組,for 循環原數組,判斷結果數組是否存在當前元素,若是有相同的值則跳過,不相同則push進數組。遞歸
4、利用sort()

利用sort()排序方法,而後根據排序後的結果進行遍歷及相鄰元素比對。
5、利用對象的屬性不能相同的特色進行去重

6、利用includes

7、利用hasOwnProperty

利用hasOwnProperty 判斷是否存在對象屬性
8、利用filter

9、利用遞歸去重
10、利用Map數據結構去重

建立一個空Map數據結構,遍歷須要去重的數組,把數組的每個元素做爲key存到Map中。因爲Map中不會出現相同的key值,因此最終獲得的就是去重後的結果。
11、利用reduce+includes
喜歡的能夠點擊關注小編哦~天天更新~