Map的数据类型,需要用new Map去创建一个Map对象
1.map的set()方法
主要是给map对象赋值的,而且我们可以进行链式操作。
map.set('1','a').set('2','b').set('3','c')
此时map对象里面有三个值
2.map的size方法
获取当前map对象中的值的个数
let num = map.size
num就是当前map对象中值得个数。
3.map的get方法
存在map里面的值是以键值对的形式存储的,get方法就是根据键的值来获取值的。 如果key值不存在,则返回的为undefined
console.log(map.get('1'))//a
console.log(map.get('2'))//b
console.log(map.get('0'))//undefined
4.map的has方法
为了确保可以准确找到存在的key对应的值,has方法可以判断该map对象是否拥有所对应的key值
console.log(map.has('1'))//true
console.log(map.has('2'))//true
console.log(map.has('0'))//false
5.map的delete方法
通过key删除map对象中的值
map.delete('1')
console.log(map.has('1'))//false
6.map的clear方法
相比delete方法,clear方法就有些简单粗暴了,他是直接清空整个map对象,回到最初 new Map的状态
map.clear()
console.log(map.size)//0
map的迭代方法
- map.keys() -- 获取一个包含key值的数组
- map.values() -- 获取一个包含value的数组
- map.entries() -- 获取一个包含[key,value]的遍历的数组 通过一个例子说明白这三个方法
let keyArr = map.keys()
let valueArr = map.values()
let entiesArr = map.entries()
console.log('======keyArr=====')
for (const i of keyArr) {
console.log(i)
}
console.log('======valueArr=====')
for (const i of valueArr) {
console.log(i)
}
console.log('======entiesArr=====')
for (const i of entiesArr) {
console.log(i)
}
打印的结果如下:
Object对象创建Map对象
在此之前,先了解一下Object.entries(Object)方法,这个方法将对象里面的键值对转换为键值对数组,并且返回一个数组。
let obj = {
'1':'a',
'2':'b',
'3':'c'
}
letmap = new Map(Object.entries(obj))
for (const i of map.entries()) {
console.log(i)
}
打印结果如下:
map对象创建object对象
Object.fromEntries(arr)需要传入的参数是一个键值对的数组。就类似于这样的:[[1:a],[2:b],[3:c]]正好,我们的map.entries()可以将我们的map转换为想要的格式。话不多说,上例子:
let object = Object.fromEntries(map.entries())
console.log(object)
打印结果如下: