ES6 如何將 Set 轉化為數(shù)組

Set 是 ES6 中新增的一種集合類型,類似于數(shù)組,但其成員的值是唯一的,即不會重復。關于Set,可以閱讀《JavaScript中的Set數(shù)據(jù)操作:交集、差集、交集、對稱差集》。Set 對象是一個構造函數(shù),可以使用 new 關鍵字來創(chuàng)建一個 Set 實例。例如:
const mySet = new Set();
Set 對象具有以下特征:
Set實例的成員唯一,不會重復。Set實例可以存儲任何類型的值,包括基本類型和對象。Set實例是可迭代的,可以使用for...of循環(huán)遍歷其中的值。Set實例的size屬性可以用來獲取它包含的成員數(shù)量。
Set 對象有以下常用方法:
add(value):添加一個值到 Set 實例中。delete(value):從 Set 實例中刪除一個值。has(value):判斷 Set 實例中是否包含某個值,返回一個布爾值。clear():清空 Set 實例中的所有值。
可以使用以下代碼創(chuàng)建一個包含幾個元素的 Set 對象并使用其方法:
const mySet = new Set();
mySet.add(1);
mySet.add("two");
mySet.add({ name: "DevPoint" });
console.log(mySet.has("two")); // 輸出 true
mySet.delete(1);
console.log(mySet.size); // 輸出 2
mySet.clear();
console.log(mySet.size); // 輸出 0
在 ES6 中,可以使用 Array.from() 方法將 Set 轉換為數(shù)組。該方法接受一個可迭代對象,并返回一個新數(shù)組。
例如,假設有一個 Set 對象 mySet,可以按以下方式將其轉換為數(shù)組:
const mySet = new Set([1, 2, 3]);
const myArray = Array.from(mySet);
console.log(myArray); // 輸出 [1, 2, 3]
除此之外,還可以使用擴展運算符 ... 來將 Set 轉換為數(shù)組。例如:
const mySet = new Set([1, 2, 3]);
const myArray = [...mySet];
console.log(myArray); // 輸出 [1, 2, 3]
這種方法更簡潔,但不支持 IE 瀏覽器。
除了使用 Array.from() 方法和擴展運算符 ...,還有就是通過遍歷 Set 并將每個元素添加到一個新數(shù)組中。
const mySet = new Set([1, 2, 3]);
const myArray = [];
for (let item of mySet) {
myArray.push(item);
}
console.log(myArray); // 輸出 [1, 2, 3]