來源:https://www.w3cplus.com/javascript/javascript-tips.htmljavascript
ES6提供了幾種簡潔的數組去重的方法,但該方法並不適合處理非基本類型的數組。對於基本類型的數組去重,能夠使用... new Set()
來過濾掉數組中重複的值,建立一個只有惟一值的新數組。html
const array = [1, 1, 2, 3, 5, 5, 1] const uniqueArray = [...new Set(array)]; console.log(uniqueArray); > Result:(4) [1, 2, 3, 5]
這是ES6中的新特性,在ES6以前,要實現一樣的效果,咱們須要使用更多的代碼。該技巧適用於包含基本類型的數組:undefined
、null
、boolean
、string
和number
。若是數組中包含了一個object
,function
或其餘數組,那就須要使用另外一種方法。java
除了上面的方法以外,還能夠使用Array.from(new Set())
來實現:數組
const array = [1, 1, 2, 3, 5, 5, 1] Array.from(new Set(array)) > Result:(4) [1, 2, 3, 5]
另外,還能夠使用Array
的.filter
及 indexOf()
來實現spa
const array = [1, 1, 2, 3, 5, 5, 1] array.filter((arr, index) => array.indexOf(arr) === index) > Result:(4) [1, 2, 3, 5]
注意,indexOf()
方法將返回數組中第一個出現的數組項。這就是爲何咱們能夠在每次迭代中將indexOf()
方法返回的索引與當索索引進行比較,以肯定當前項是否重複。code