00:00
Hello,大家好,这个小节呢,我们来做一下set一个实践。啊,我们这里列了四个需求,第一个呢数组去重,第二个呢求交集,第三个求并集,第四个求差集。啊,都是集合的一些啊常见的操作好了,那么这是第一个,咱们先来看第一个就是数组驱虫啊如何呢,来实现这个数组去重呢,很方便,看一下let result等于一个,首先咱们先把这个数组呢,通过它来构建一个集合出来,New set a。这个时候呢,Result已经变成一个集合了,但是它不是一个数组,那如何把它变成一个数组呢?哎,我们可以通过扩展运算符把它展开点儿点儿点儿。保存,然后接下来我们使用log来打印一下result这个变量,刷新看这12345。
01:00
大家可以看一下,做数组驱虫就是这么方便。好,这是第一个完成,下边呢,我们来做一个交集,哎,Let a2等于一个四逗号五逗号六啊,咱们再来一个,哎,五六写几个重复的。好,那么交集呢,就是说我这是一个几何。这是一个集合啊,这个数字如果在你的集合里边有,在你这儿,在第二个集合里边也有,哎,那么一呢,就是交集里边的一部分,用咱们上学的那个啊,那个语法来说,就是A这样子啊,画个圈啊,如果说呢,你是既在A这个集合里边,又在B这个集合里边,那么你就属于交集的一部分。好,那么咱们上去的话,还有一个符号就是这个。啊,用这个这样的符号来表示交集,好,那接下来的话,咱们来做一个实践啊,那如何来实现这个交集呢?好。
02:02
看一下that result,首先这是两个数组啊,这是两个数组,我要先把它变成一个去重以后的结果,为什么去重呢?因为不去虫,挨个去进行比对,这个很明显啊,效率是啊,不够的做很多无用的一些判断,所以说咱们这儿呢,先把它变成一个去重之后的数组,点点点new set把A放进来。放进来以后呢,它此时就变成了一个驱虫之后的数组了啊,接下来咱们使用filter这个方法来完成啊,在里边来一个item。我们要判断一下这个元素它在不在ARR2里边。如果说在呢,哎,就证明它是一个交集的部分,你像这个一在不在呢,不在,那不在的话,只在你这里边存在,不在这里边存在,所以你不是交集,谁是呢?四和五啊是交集,就所以说我们判断在,在还是不在呢,如果在就是交集的一部分,如果不在就不是,所以咱们这要判断一下啊,怎么判断呢?啊,我们如何去判断一个元素在不在这个数组里边呢?
03:11
啊,当然有,有很多方法也可以呢,便利是吧,也可以呢,使用这个呃那个方法呃,就是。Find。然后呢,还可以使用别的方式啊,不过咱们这儿呢,就先不这么去判断了,我们准备这样子,我把这个数组呢也变成一个集合,哎,看一下let s2等于一个new的set a2。好搞定,那么这个时候的话,S2呢,是数组二去重之后的一个结果,元素里边只有谁呀,只有456。三个元素,那这个时候咱们判断起来呢,也比较方便啊,里边有专门的方法就是检测啊集合里边有没有这个元素啊,判断一下,如果S2.has,把item放进来,如果呢,咱们这个S2集合里边要是存在这个元素,就证明这个元素既在数组一里边有,又在数组二里边有,那么它就属于集合的一部分,咱们这呢,返回一个处。
04:18
好,那反之的话就是返回一个false return,一个false搞定,一起来看看结果怎么样,Log打印一下result变量保存。来看这四和五满足条件没有问题啊,这是求一个交集,那这块代码呢,是可以简化的啊,我把这个代码呢,直接COPY1份拿过来放下边,然后点filter,然后item。后边呢,咱们把这个代码呢简化一下,就是new set a2后边呢,跟上一个点has判断这个item元素。
05:00
这这是只是一条语句啊,这是一条语句啊,如果说他要是为针。我把这个往这边拉一拉啊,如果它要是为真,则表示item元素既在啊数组一,又在数组二。好,一起来看结果怎么样。点log打印一下result,把上面这个咱们需要注掉。保存。看一下四和五没有问题,再刷新一下啊四和五好,这是求一个交集,然后下边的话,我们来求一下呢,两个数组的一个并集,并集呢就是哎,这个我们两个的一个算是一个合并之后的一个结果。比如说我的一个客户是吧,和你的客户加起来就是咱们这个小组的共同客户啊,总的一个客户好,那么这个时候呢,还是一样是吧,把它们两个呢合并一下就可以了啊,这个比较简单,来看一下let result哦,换个名字吧,这块咱们写一个UN。
06:03
等于一个数组点点点A。点点点A22,我先把这两个数组呢做一个合并,合并以后呢,它们其实也是有重复元素的,它有重复元素没有关系,咱们可以通过集合来把元素呢做一个去重。去重以后呢,它本身还是一个集合,咱们这还需要再做一个事情,就是把它呢再转化成一个数组,哎,看结果来一个UN。保存。啊,大家看一下啊,123456没有问题啊,这是一个并级,然后还有呢是一个差戟,这个差戟呢,其实跟交集是啊相反的,这个差集是这样子啊,就是要看谁和谁求差集,如果说是一和二求差集,就是我一里边有,你二里边没有的,比如说我这是123,你这块呢是345,那么这个时候差集就应该是一和二。
07:10
一和二,因为只有一和二是在咱集合一里边有,集合二里边没有的。之差几,那反过来呢,我还可以这么说,就是二和一,它的一个差距是什么呢?就是二里边有,一里边没有的,那么这个时候是四和五,因为四和五是在二集合里边有,一集合里边没有的,所以说谁是主体啊,这个结果是不一样的啊好了,那接下来咱们来看一下啊,其实这个。差级呢,就是。交集的一个逆运算啊,我们把这个直接拿过来。啊放到这,然后做一个取反,哎,看log Di打印一下。然后咱咱们在这的话,把它呢,做一个这个小括号括起来啊,做一个取反保存看一下,这个时候呢,结果是123,你上边的话是123455个元素,下边呢是456,那哪个元素只在数组一边一里边存在呢,就是1233个元素。
08:17
啊,这是做一个取反,就是你看啊,呃,我们再说一下,就是元素呢,在我这儿有,但是它不能在你里边有,只要不在你这个数组里边,那好它就是满足差级要求的。好,那这个小节呢,对于集合的一个实践,我们就先到这儿。
我来说两句