00:00
大家好,我是学习园地的特约讲师高洛峰,上节课呢,我们学习了数组新增的几个高阶的方法,在我们后边的框架学习中和我们以后的开发中用的还是比较多的,那咱们还是趁热打铁,这节课学一个跟数组类似的数据结构,用来存储用的,那比数组呢要强大强大一些,那我们这里边呢,嗯,就类似于我们Java里边,里边呢,你比如说里边有set map,跟那个用法其实是一样的啊啊,那它俩之间有什么区别呢?那sat呢,当然了,只是往里存值,没有键的对不对?Map呢,是通过键值对这样子去往里存储的。来,我们简单使用一下。新建一个天文件,我们叫做site map,就这个,然后我们在这块写上script,然后我们cost创建一个,比如说对象,等于它得用new的方法去建啊,比如说新建set,然后呢,往里面添加,使用的方法添加,添加数据使用的是ADB,那我们是OB节点ADB添加什么呢?比如说添加一个一进去。
01:04
它只能添加这个,只要不是像那个map可以建这对的,然后打印一下,嗯,Lo打印一下这个对象,我们运行一下,看一下结果。来F12,你看sat里边就有一个一的数据,那当然了,我们在这块就可以直接用这个了,你比如说嗯,OB节点,呃,ABDB,我们添加一个二进来,它就会变成你的一二进去了,然后我直接可以在密码上操作,是一样的啊,因为它这块也是直行价K能给的ADB,三看就进去了,那123,那我们在这里边呢,O节点ADB,那我们还可以添加,嗯,比如说添加数组进来,AA。DD,你看一个速度就进来了,对不对,那我们还可以干嘛呢?如果这里边重复的数据是添加不进去的,比如说OB节点ADD原来里边比如说已经有二了,我再添加个二,你看一下那就没劲了,还是原来的速度速组对不对,长边这样,那如果添加一个新的数组,比如说五,那就可以一个多了一个五是这样的,那除了这个添加的方法,那当然了也有什么,也有删除的方法和判断里边的数据的方法,比如说我现在想,嗯,判断里边有没有什么数据,OB节点就是has。
02:14
用这个HS判断谁呢?这里边有没有五,你看是真有对不对,有没有六呢?你看没有是假对吧,通过它来判断,那我现在OB且还可以怎么着de删除直接删除,比如说删除这里边了五帧,它返回的是删除的帧是以相相当于怎么有这个值删除了,你比如说我删除六没有这个值,那就是假,因为里边根本就没有六嘛,对不对?然后9 NOl.LOG,我们得打印一下这个OG,你看删除之后的值就这样。是删除之后的,可以删除,可以判断有没有,那当然也可以便历呃,比如说for h eh ch for用这个便利,这里边呢需要一个回调函数,我们就用呃箭头函数吧,它也是将这个呃数据里边每一个元素我就N吧都传到这里边来,那我这里边直接cns or re.log直接打印也可以啊N那相当于传在一个函数把这个数组里边,当然前面对象里边点for,用然OBj.for。
03:17
你看123和这个它都编辑出来了,当然这个是因为我说这里边没有返回值,它这里边掉了下这个返回值啊,我直接用colo可以用for这种方式去遍历,你也可以用什么map那种方式啊,对吧,就是去便利也可以用,呃,For off或者什么便利都可以,那假如说我们用for in,就是就直接用for循环I等于小于多少呢?那个长度怎么办呢?这还有一个用size不是浪啊,用这个来判断数组的长度。放在这个,那OB节点有没有一个可粒呢,ER也有清除数据就空了,是这样的一个情况,所以呢,它就是一个数据结构,增删改查往里边放数据就可以了,那除了有什么有的set,那我们还可以有什么是一样的,我们还可以修ST,还有一个map OB接等于呃,用一个map用法是一样的啊,只不过map添加的时候使用set这个方法去添加,不是用ad啊,使用什么set方法添加,添加的时候呢,它需要指定两个,需要指定一个键值,对你比如说添加一个Y,对应的值是ABC,是这样,然后呢,unso.logg打印一下这个D来,我们再重新运行一下。
04:31
F12。你看map里边有一个值对不对?减值Y等于这个,那我们现在可不可以往里边添加别的呢?可以,比如说OB接点也是用set里边的所有的方法样,只是添加方法是不一样的,它操作呢,是用下标来操作的,比如说to这个下标,然后里边有一行一行二,这样这里边就进去了,对不对?那获取值呢?获取值呢?OB节点get通过谁来获取呢?通过这里边的下标来获取Y,你看就获取到ABC了,是这样,OB节点get,你比如说这里边two,那就获取到这个值了,对不对?那没有的值我们能不能获取到的,你比如说呃,OB节点嗯,Get,我们获取到three接加1THREE,你看没有这个值就是没有定义对吧?那同样如果重复的值添加的时候,它会把原来的值覆盖,比如说OB接S,我们存一个假如说to里边的值我变成2020,你看这里边就会把to原来的二二变成2020。
05:31
当然了,它是相同的值,包括S一样,相同的值,字符串和整形是两个可以并存的,但是相同的,嗯,相同类型,相同的值是不行的,那相同的值不同的类型其实是可以的,然后你想删除也是第删除,但是删除的我们指定都是下标,并不是直接的值,比如说把Y删除掉,你看返回的就是告诉我删除成功对吧,当然我遍历的时候也可以使用for可以使用,嗯。嗯,还有什么,呃,Light变量,然后off这种off这种都是可以的,都是一样的一个操作,我就给大家一一演示了,那它俩的区别呢,就是一个是操作值,一个是操作键和值,Map是这样的一个情况,那它的尺寸什么的,长度也是用size s都是对吧?这里边就一个,当然你就是返回的肯定就是E对不对,然后OB节点cer清除对吧。
06:21
清除那就全清清掉了,对吧,是这样的一个情况。但你可以代码里写,您可以在您这个。这里边也可以操作嘛,对吧,不光是控制台嘛,对吧,可以按命令式的去操作,当然你可以按这种方式,它俩的区别就是一个是只操作值,一个是键和值,然后只有添加方法不一样,然后操作的他直接操作值,他操作键和对应的值是这样的一个情况,那具体的一些步骤呢,我也给你写到这里边儿了,这些方法看一下和返回什么样的值。啊,也可以用它来便秘for啊。然后也可以通过这种返回,呃,通过它呃返回键名的一个迭代器,通过它返回值的一个迭代器,就返回所有的键,返回所有的值,那返回所有键和值,就每一个成员都可以啊,然后通过它可以便利,这是便利的一些方法啊,谢谢大家,这数据结构呢,去了解了解一下,在后边咱们应用的时候呢,再详细的说,用实例的时候去应用,好这节课我们就讲到这里。
我来说两句