一、Set是什么?
set結構似於數組,但是成員的值都是唯一的,沒有重復的值。
參數可以是數組,類似數組的對象,字符串。
eg: new Set([1, 2, 3, 4, 4]) ; new Set(document.querySelectorAll('div')); new Set(‘abbc’) ;
它是個構造函數,我們先來打印下
可以看到Set結構有個size的屬性, 它的值是去重之后的length.
注:Set 不會發生類型轉換,類似於===,但還是有部分區別,Set 認為NaN等於自身,而=== 認為NaN不等於自身。
二、轉換類型
Set不是數組,那用什么方法轉換為數組呢? ----- Array.from()
三、方法
.add(value):添加某個值,返回 Set 結構本身。
.delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。
.has(value):返回一個布爾值,表示該值是否為Set的成員。
.clear():清除所有成員,沒有返回值。
來個例子吧:
.keys():遍歷鍵名、 .values():遍歷鍵值、 .entries():遍歷鍵值對、 .forEach():遍歷每個成員
注:Set 結構沒有鍵名,只有鍵值(或者說鍵名和鍵值是同一個值),所以keys
和values
方法,都是返回鍵值
entries返回的鍵、值都相同。
四、應用: