ES6 Set 對(duì)象
Set 對(duì)象
Set 對(duì)象允許你存儲(chǔ)任何類(lèi)型的唯一值,無(wú)論是原始值或者是對(duì)象引用。
01Set 中的特殊值
Set 對(duì)象存儲(chǔ)的值總是唯一的,如果有多次放相同的值,會(huì)覆蓋之前的。所以需要判斷兩個(gè)值是否恒等。
在js中有幾個(gè)特殊的值:undefined,NaN,Infinity。
看下面的例子:

運(yùn)行結(jié)果:

結(jié)論:
1. Set對(duì)象里面的值是唯一的。如果值相同,后面的會(huì)覆蓋前面的。
2.雖然NaN和NaN不相等,但是在Set集合里面只會(huì)存在一個(gè)。
3.undefined和Infinity在Set集合里面只會(huì)存在一個(gè)。
4.如果Set的值是對(duì)象,只要是兩個(gè)對(duì)象,即使兩個(gè)對(duì)象的數(shù)據(jù)一樣。Set里面也會(huì)存著這兩個(gè)對(duì)象
02類(lèi)型轉(zhuǎn)換
Array和Set 互相轉(zhuǎn)換

?運(yùn)行結(jié)果:

結(jié)論:
1. 通過(guò)new Set(數(shù)組),可以將一位數(shù)組轉(zhuǎn)換成Set對(duì)象。
2.Set對(duì)象轉(zhuǎn)換成Array,通過(guò)ES6的擴(kuò)展運(yùn)算符:[...Set對(duì)象]。
3.new Array(set)和new Array([...set]兩種方式,前者得到的是一個(gè)長(zhǎng)度是1的數(shù)組,數(shù)組0位置的值是一個(gè)Set對(duì)象,后著得的是一個(gè)二位數(shù)組。
4.new Set(字符串),得到是一個(gè)Set對(duì)象。該對(duì)象的長(zhǎng)度是字符串的長(zhǎng)度
03Set 對(duì)象作用
數(shù)組去重
用這種方式能夠很方便的將數(shù)組中重復(fù)的值進(jìn)行剔除掉。

運(yùn)行結(jié)果:

數(shù)組的長(zhǎng)度是12,轉(zhuǎn)換成Set之后,Set的長(zhǎng)度是8。說(shuō)明已經(jīng)將重復(fù)的值剔除掉了。
并集
這里先說(shuō)一下什么是并集。
給定兩個(gè)集合A,B,把他們所有的元素合并在一起組成的集合,叫做集合A與集合B的并集,記作A∪B,讀作A并B。
例子:

運(yùn)行結(jié)果:

交集
先來(lái)看一下交集的概念。
集合論中,設(shè)A,B是兩個(gè)集合,由所有屬于集合A且屬于集合B的元素所組成的集合,叫做集合A與集合B的交集(intersection),記作A∩B。
例子:

運(yùn)行結(jié)果:

提示
其實(shí)上面是借助了數(shù)組的filter函數(shù)。
差集
先來(lái)看看差集的概念。
一般地,記A,B是兩個(gè)集合,則所有屬于A且不屬于B的元素構(gòu)成的集合,叫做集合A減集合B(或集合A與集合B之差),類(lèi)似地,對(duì)于集合A、B,我們把集合{x∣x∈A,且x?B}叫做A與B的差集,
例子:

運(yùn)行結(jié)果:

提示
其實(shí)上面是借助了數(shù)組的filter函數(shù)。