Set 对象
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
01
Set 中的特殊值
Set 对象存储的值总是唯一的,如果有多次放相同的值,会覆盖之前的。所以需要判断两个值是否恒等。
在js中有几个特殊的值:undefined,NaN,Infinity。
看下面的例子:
运行结果:
结论:
1. Set对象里面的值是唯一的。如果值相同,后面的会覆盖前面的。
2.虽然NaN和NaN不相等,但是在Set集合里面只会存在一个。
3.undefined和Infinity在Set集合里面只会存在一个。
4.如果Set的值是对象,只要是两个对象,即使两个对象的数据一样。Set里面也会存着这两个对象
2
类型转换
Array和Set 互相转换
运行结果:
结论:
1. 通过new Set(数组),可以将一位数组转换成Set对象。
2.Set对象转换成Array,通过ES6的扩展运算符:[...Set对象]。
3.new Array(set)和new Array([...set]两种方式,前者得到的是一个长度是1的数组,数组0位置的值是一个Set对象,后者得的是一个二位数组。
4.new Set(字符串),得到是一个Set对象。该对象的长度是字符串的长度
3
Set 对象作用
数组去重
用这种方式能够很方便的将数组中重复的值进行剔除掉。
运行结果:
数组的长度是12,转换成Set之后,Set的长度是8。说明已经将重复的值剔除掉了。
并集
这里先说一下什么是并集。
给定两个集合A,B,把他们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集,记作A∪B,读作A并B。
例子:
运行结果:
交集
先来看一下交集的概念。
集合论中,设A,B是两个集合,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集(intersection),记作A∩B。
例子:
运行结果:
提示
其实上面是借助了数组的filter函数。
差集
先来看看差集的概念。
一般地,记A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A、B,我们把集合叫做A与B的差集,
例子:
运行结果:
提示
其实上面是借助了数组的filter函数。
领取专属 10元无门槛券
私享最新 技术干货