第二步,在<body></body>插入一个输入框和一个按钮,设置它们id属性,如下图所示:
第三步,编写函数querySize,声明一个Map集合,利用set方法添加元素,然后将获取Map集合元素个数赋值给输入框,如下图所示:
第四步,然后在button绑定onclick事件,保存代码,如下图所示:
第五步,启动Tomcat服务器,在浏览器中查看页面效果,单击按钮,查看输入框显示数字,如下图所示:
第六步,再次修改代码,对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)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)