Map常用的方法,以及对象与map的互相转换

105 阅读2分钟

Map的数据类型,需要用new Map去创建一个Map对象

1.map的set()方法

主要是给map对象赋值的,而且我们可以进行链式操作。

 map.set('1','a').set('2','b').set('3','c')

此时map对象里面有三个值

1698630724691.png

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)
}

打印的结果如下:

1698632549058.png

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)
}

打印结果如下: 1698633159766.png

map对象创建object对象

Object.fromEntries(arr)需要传入的参数是一个键值对的数组。就类似于这样的:[[1:a],[2:b],[3:c]]正好,我们的map.entries()可以将我们的map转换为想要的格式。话不多说,上例子:

let object = Object.fromEntries(map.entries())
console.log(object)

打印结果如下:

1698633776872.png