温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
Hello,大家好,那这个小节我们来看一下,数组去重的第二种方式,就是我们借助于一个对象做容器。来去实现啊,这样的话可以呢,少进行一次数据遍历,效率会稍微高一些。好了,那谁的话,我们先把这个UNQ呢,后边补一个二。咱们去实现UNQ2这个函数。它是接受一个参数数组。把这个说明的给加上。然后这里边儿呢,我们如何去做呢?我们要声明一个空数组。这空数组的作用呢,跟上边是一样的,为了存储结果。除了这个之外,我们还要需要声明一个空对象。声明空对象干什么呢啊,用来存放。就是数组当中。啊,这个元素它的一个下标。嗯,说下边不太准确,应该说是把数组当中的值。作为下标存到OG当中。
01:02
为什么要把这个下标作为属性存到obj当中呢?因为这样一来,我们在判断这个属性是不是已经写,是不是已经存在。就是这个事情在检测上面会变得非常非常方便。好了,那么下面的话,我们接下来开始遍历数组。好,然后呢,我们a.for。Item。那么item呢,其实就是这1232145的元素啊,然后我们下边要做什么事情呢,就是。将item作为。啊,这个下标。存储。在这个OB中。也就是说呢,把明这有个一对不对,我们就来一个OBJ1,然后呢,存进去obj啊,当然这个这里这个地方不能使用点,因为它是个变量。然后等于一个处。啊,设置一个值,然后呢,顺便再做一个事情,就是result,然后点push,然后等于一个item。
02:03
大家可以看一下啊,我我们如果说单纯这么去写啊,这代码其实没有任何的。变化,就每一个元素都插到了result里边。所以说呢,我们要想让这个代码有意义,现在我们需要做一个判断。比方说你第一次你可以这么去去写,但是第二次这个二来了之后呢,你就得检测检测检测obj当中到底有没有这个下标为二那个值。如果说有呢,你就不能往里边压了啊,如果说没有,你才可以往里边压。所以说咱们可以判断一下。如果说OG。然后呢,下标item。它呢,如果说要是为真,就不能往里边压啊,如果说是要为假呢。比如说unDeFined,因为它默认情况下指的就是一个unDeFi。就这两种情况啊,要么是unDeFined,要么是一个true。如果说你要等于unDeFined。
03:00
也就是说咱们obj里边并没有这个下标比,以二来为例啊,Obj下标二没有这个元素等于on find,那你就可以往里边去加入了。三的话也可以往里边压,当你看你看这儿,你看这儿,如果说第四次循环的时候,这个二过来一看。你看这个二,它此时就不是unDeFined,它已经是一个处了。是出的话,对不起,就不要往里边压了,你也进不到这个里边啊。通过这种方式快速去判断。数组当中是不是已经存在这个元素了?好,然后最后的话返回结果。啊,Return一个result完成。好,我们一起来看看效果怎么样,点开它。啊,右键刷新。当然的话,再加点儿东西区分开确认一下。右键刷新页面可以看一下,没有问题。好了,这是关于数组去重的第二种方式。
我来说两句