感受Map键值对
- 花样很多
let map = new Map()
map.set('name', 'dust')
map.set(function () {}, 'hello')
map.set({}, 'hi')
map.set(1, 'www.baidu.com')
console.log(map)
运行结果:
- 也可以一次性添加多个值
let map2 = new Map([['name', 'dust'],[function () {}, 'hello'],
])
console.log(map2)
运行结果:
Map里的增删改查
- 查找某一项
- 注意这里是引用对象,在某些情况下是查不出来的。
console.log(map.get('number'))
- 判断是否有
map.has()
console.log(map.has('number')) //true
- 清空
map.clear()console.log(map) //Map(0) {}
Map遍历的几种方式
- 遍历keys:
map.keys()
for (const key of map.keys()) {console.log(key)
}
- 遍历values:
map.values()
for (const value of map.values()) {console.log(value)
}
- 遍历全部内容
for (const [key, value] of map.entries()) {console.log(key, value)
}
forEach
遍历
- 注意这里和上面的是反过来的,这里是
(value, key)
map.forEach((value, key) => {console.log(value, key)
})
Map的展开
- 可以用于类型转换
let map = new Map([['name', 'dust'],[function () {}, 'hello'],[{}, 'hi'],['number', 99],
])
console.log(...map.entries())
运行结果:
[ 'name', 'dust' ] [ [Function (anonymous)], 'hello' ] [ {}, 'hi' ] [ 'number', 99 ]
执行以下代码:
let a = [...map]
console.log(a)
运行结果:
此时你就可以类型转换了。