Map()
Map是一个带键的数据项的集合,就像object一样。但是它们最大的差别是Map允许任何类型的键。
方法和属性
new Map()—- 创建mapmap.set(key,value)—- 根据键存储值map.get(key)—- 根据键来返回值,如果map中不存在对应的key,则返回undefinedmap.has(key)—- 如果key存在则返回true,负责返回falsemap.delete(key)—- 删除指定键的值map.clear()—- 清空mapmap.size—- 返回当前元素个数
let map=new Map() 
map.set('1','se') //根据键储存值 返回 Map(1) {"1" => "se"}
map.get('1') //根据键返回值,如果不存在返回undefind 返回se
map.has('1') //如果key存在返回true
map.delete('1') //删除指定键的值 返回true
map.clear() //清空 返回undefind
map.size //返回当前元素个数 返回0
Set()
- 是一组key的集合,但不存储value。(或者说key、value相同)
 - 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。Set中,key不能重复。如果出现重复的key,Set会自动过滤。Set没有索引,它的键和值是一个。
 - Set()是一个类似数组解构,但它不是数组。它本身就是一个构造函数。
 - 它最主要的作用是去重。
 - 可以使用Array.from()把它变成一个数组。
 - 通过展开运算符(…)可以把Set集合转换成一个数组。
 
let set = new Set([1, 2, 3, 3, 3, 4, 5]),
array = [...set] 
console.log(array)  // [1,2,3,4,5]
方法和属性
set.add("a")添加一个元素set.delete("a")删除一个元素set.size获取元素的数量set.clear()清除对象中的所有元素。set.has("a")判断s对象中是否有某个元素,返回true或false
//实例化一个Set对象
var set =new Set() 
//Set对象通过add方法添加元素
set.add('3')
set.add('3') //注意3和'3'是不同的元素
set.add('apple') 
console.log(s) //打印结果:Set(3) {3, "3", "apple"}
//使用delete可以删除元素
set.delete('apple') 
console.log(s)  //打印结果:Set(2) {3, "3"}
//清除set对象中的所有元素。
set.clear() 
例:可以用多个add加入元素
set.add(1).add('哈').add('apple') 
console.log(s)  //Set(3) {1, "哈", "apple"}
//Set括号中数字代表set中有几个元素