map对象是有key与value组成的,key值可以是字符,对象,函数,NAN等,创建map对象 var myMap = new Map()
myMap.set("hello","woel") ,myMap.get("hello")
map对象可以用for of遍历 如 for (var [key,value] of myMap) 或者用 myMap.forEach(function(value,key)) 来遍历
map对象与数组相互转换
重点如下
1.对于二维数组 如 a=[['key1','value1'],['key2','value2']]转换成map对象
var neyMap = new Map(a)
map对象转换成二维数组 var b = Array.from(neyMap)
2.map的克隆
var a= new Map([['key1','value1'],['key2','value2']])
var b = new Map(a)
3.map的合并
var a = new Map([['key1','value1'],['key2','value2']])
var b = new Map([['key2','valuer'],['key5','value5']])
var c = new Map([...a,...b]) 相同的key值后面的会替换前面的
关于set对象,set对象存储的值都是唯一的
var mySet = new Set()
mySet.add(1)
mySet.add(2)
mySet.add(2)
重点set对象与数组的转换
var mySet = new Set(['a','b','c'])
var ArrayT = [...mySet]
1.set对象通常用来作为数组去重,数组合并去重,数组取交集,数组取差集
1.数组去重
var mySet1 = new Set([1,3,4,4,5])
var arry = [...mySet1]
2.数组合并去重
var mySet1 = new Set([1,3,4,4,5])
var mySet2 = new Set([1,3,7,6,5])
var newSet = new Set([...mySet1,...mySet2])
var arry = [...newSet]
3.数组取交集
var mySet1 = new Set([1,3,4,4,5])
var mySet2 = new Set([1,3,7,6,5])
var t = new Set([...mySet1].filter(x =>mySet2.has(x)))
var arry = [...t]
4.数组取差集
var mySet1 = new Set([1,3,4,4,5])
var mySet2 = new Set([1,3,7,6,5])
var c = new Set([...mySet1].filter(x => !mySet2.has(x)))
var arry = [...c]