ES6 Set數據結構

一、Set的基本用法
ES6提供的Set集合用於存儲不重複的數據
Set本身是一個構造函數,用來生成 Set 數據結構。

const s = new Set();
s.add(1);
s.add(1);
console.log([...s]);//[1]

在上面代碼中,創建了一個Set結構,然後通過add()方法向裏面添加了兩個相同的成員,最後輸出的只有一個成員。
結果表明 Set 結構不會添加重複的值。

let obj = {
	a : 1,
	b : 2
}
const s = new Set(obj);//報錯

在這裏插入圖片描述
當向Set集合中加入一個對象時,會拋出一個錯誤,提示類型錯誤(對象不具有iterable 接口)。
Set函數接受的參數必須具有 iterable 接口。

const s = new Set("abcdefg");
console.log([...s]);//["a", "b", "c", "d", "e", "f", "g"]

如果Set函數傳入的參數的是一個原始值,則會將轉換成字符串對象,再進行存儲

二、Set實例的屬性和方法
1.add()
添加某個值,返回 Set 結構本身。

const s = new Set();
s.add(1);
s.add(1);//無效添加

2.has()
返回一個布爾值,表示該值是否爲Set的成員。

const s = new Set([1,2,3,4,5]);
s.has(1);//true
s.has(6);//false

3.delete()
刪除某個值,返回一個布爾值,表示刪除是否成功。

const s = new Set([1,2,3,4,5]);
s.delete(1);//true
s.delete(6);//false

4.clear()
清除所有成員,沒有返回值。

const s = new Set([1,2,3,4,5]);
s.clear();
console.log([...s]);//[]

5.size
返回Set實例的成員總數。

const s = new Set([1,2,3,4,5]);
s.size;//5

6.forEach()
Set 結構的實例與數組一樣,也擁有forEach方法,用於對每個成員執行某種操作,沒有返回值。

const s = new Set([1,2,3,4,5]);
s.forEach((item,index,s)=>{
    console.log(item,index,s)
})

在這裏插入圖片描述
從上面輸出結果中可以看出Set結構中的forEach()方法被重寫了,與數組的不同。
在Set集合中index不是下標,Set集合沒有下標。
forEach中第一個參數和第二個參數的值是相同的,都代表Set集合中的每一項數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章