如何利用JavaScript语言获取Map集合中元素个数

如何利用JavaScript语言获取Map集合中元素个数,第1张

第一步,打开eclipse开发工具,新建静态页面mapsize.html,如下图所示:

第二步,在<body></body>插入一个输入框和一个按钮,设置它们id属性,如下图所示:

第三步,编写函数querySize,声明一个Map集合,利用set方法添加元素,然后将获取Map集合元素个数赋值给输入框,如下图所示:

第四步,然后在button绑定onclick事件,保存代码,如下图所示:

第五步,启动Tomcat服务器,在浏览器中查看页面效果,单击按钮,查看输入框显示数字,如下图所示:

第六步,再次修改代码,对Map集合添加元素,再次预览页面,查看效果,如下图所示:

map的对象只能是一个数组,最简单的创建方式是

var test = []//定义一个空数组

test.push()//给数组添加元素

test.map(function(e, i) {

    console.log(e)//e表示数组遍历的元素,i表示遍历的下标,也叫做key

})

另外一种创建数组的方式

var test = new Array()

Map存储key和对应的value。

1、Map()的特点:

(1) Map是一组键值对的形式 ,具有极快的查找速度;

(2)Map对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。Set类似于数组,而Map就类似于键值对(Key, Value);

(3)Map是键值对的形式,通过键可以取到对应的值,键名不能重复;

(4)ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键;

(5)通过 展开运算符(…)可以把Map集合转换成包含多个数组的数组 。

背景,举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Array,给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,Array越长,耗时越长。

解决方法:使用Map 只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。

用JavaScript写一个Map如下:

2、Map用法实例:

3、Map的属性值说明:

var x=new Map()

(1) x.set(‘a’,‘b’)添加键值

(2) x.has(‘a’)判断是否存在某个键值,返回true或false

(3) x.delete(‘a’)删除某个键

(4) x.get(‘x’)获取键对应的值

(5) x.size获取有多少个元素

(6) x.clear(),注“括号中没有参数”,清楚x对象中的所有元素。

(7) keys():返回键名的遍历器。

(8) values():返回键值的遍历器。

(9) entries():返回所有成员的遍历器。

(10) forEach():遍历 Map 的所有成员。

4、Map使用方法:

(1)初始化Map对象

(2)使用has判断某个键是否存在

(3)使用delete可以删除某个键

(4)使用get可以获取某个键的值

(5)清除所有的元素

注意:由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉。

实例:

上面代码在新建 Map 实例时,就指定了两个键name和title。

Map构造函数接受数组作为参数,实际上执行的是下面的算法。

下面的代码使用forEach实现:

用法看下面的实例:

Map 结构转为数组结构,比较快速的方法是使用扩展运算符(…)

1、特点:

(1)是一组key的集合,但不存储value;

(2)对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。Set中,key不能重复。如果出现重复的key,Set会自动过滤。Set没有索引,它的键和值是一个。

(3)Set()是一个类似数组解构,但它不是数组。它本身就是一个构造函数。

(4)它最主要的作用是去重。

(5)可以使用Array.from()把它变成一个数组。

(6)通过展开运算符(…)可以把Set集合转换成一个数组。

2、用法

3、属性说明

var s=new Set()

(1) s.add(‘a’)添加一个元素

(2) s.delete(‘a’)删除一个元素

(3) s.size获取元素的数量

(4) s.clear()清除对象中的所有元素。

(5) s.has(‘a’)判断s对象中是否有某个元素,返回true或false

4、可以使用多个add()连起来:

5、Set中的方法:

由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。

6、使用forEach()

7、使用…扩展符可以把Set对象变成一个数组

8、也可以使用map和filter对Set对象进行处理

注:使用map和filter进行处理之前记得使用…把Set对象变成一个数组,再进行一系列 *** 作。

代码如下:

使用map:

使用map进行处理:

把数组变成Set类型:

使用filter:

使用 Set 可以很容易地实现并集(Union)、交集(Intersect)和差集(Difference)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11653450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存