js 數組去重

來源: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以前,要實現一樣的效果,咱們須要使用更多的代碼。該技巧適用於包含基本類型的數組:undefinednullbooleanstringnumber。若是數組中包含了一個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

相關文章
相關標籤/搜索