給定一個陣列,你該如何將其中的重複值移除?

假設你有一個包含一系列基本值的陣列,例如數字或字串。

其中一些元素是重複的。

就像這個例子中:

const list = [1, 2, 3, 4, 4, 3]

我們可以使用以下方式產生一個新的陣列,其中不包含重複的值:

const uniqueList = [...new Set(list)]

現在,uniqueList 將成為一個新的陣列,其中包含值 [1, 2, 3, 4]

這是如何運作的呢?

Set 是一種新的資料結構,在 ES6 中的 2015 年被引入,它的主要特點是能夠在同一個集合中不能重複儲存資料。請參考我關於 Set 的完整指南

通過使用解構陣列的方式初始化一個 Set(請看到 ... 操作符在 new Set() 前面),我們將值傳入 Set 中,Set 會自動移除重複的值。然後我們將其轉換為一個陣列,使用方括號 [] 包裹起來。

這個方法對於任何不是物件的值都適用:數字字串、布林值、符號