ES6陣列去重的三個簡單方法

2021-10-07 18:48:10 字數 1475 閱讀 2853

第一種:利用map物件和陣列的filter方法

**如下:

let arr1 = [1, '1', 1, undefined, undefined, nan, nan];

function unique(arr)

let newarr = unique(arr1);

console.log(newarr);

結果如下圖:

通過列印我們發現,確實實現了我們想要的效果。那麼下面簡單來解釋一下。

map物件是es6提供的乙個新的資料結構,其中has的辦法是返回乙個布林值,表示某個值是否存在當前的mp物件之中,set的辦法是給map物件設定key/value。

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

所以說,map物件結合filter方法可以達到陣列去重的效果

第二種:利用set物件和陣列的array.from方法

let arr1 = [1, '1', 1, 2, 3, 4, undefined, undefined, nan, nan];

function unique(arr)

let newarr = unique(arr1);

console.log(newarr);

結果如下圖:

簡單來說,第二種方法比第一種還簡單。同樣來簡單解釋一下。

set是es6新提供的資料結構,類似於陣列,但是本身沒有重複值。

array.from方法用於將兩類物件轉為真正的陣列:類似陣列的物件(array-like object)和可遍歷(iterable)的物件(包括 es6 新增的資料結構 set 和 map)。

所以set結合array.from同樣可以達到陣列去重的效果。

第三種:利用set+擴充套件運算子 …

let arr1 = [1, '1', 2, 3, 4, 4, 4, 4, 5,  undefined, undefined, nan, nan];

let newarr = [...new set(arr1)];

console.log(newarr);

結果如下圖:

這就是利用es6新特性達到陣列去重的三種辦法,這三種辦法有乙個共同的好處就是**簡潔,對於undefined和nan業同樣可以達到去重的效果。

陣列去重ES6

1,去除簡單型別 es6中新增了set資料結構,類似於陣列,但是 它的成員都是唯一的 其建構函式可以接受乙個陣列作為引數,如 let array 1,1,1,1,2,3,4,4,5,3 let set new set array console.log set set es6中array新增了乙個靜...

es6陣列去重

es6中新增了set資料結構,類似於陣列,但是它的成員都是唯一的,其建構函式可以接受乙個陣列作為引數,如 let array 1,1,1,1,2,3,4,4,5,3 let set new set array console.log set set es6中array新增了乙個靜態方法array.f...

陣列去重 ES6新增方法

js中的陣列去重是面試必考點,這裡來 下es6中的新增方法 通過控制台輸出結果,可以看出arr中重複的字元的確去除了 1.map物件是es6提供的乙個新的資料結構,其中has的辦法是返回乙個布林值,表示某個值是否存在當前的mp物件之中,set的辦法是給map物件設定key value。2.filte...