Map的定义及解决的问题
- Map是一组键值对组合的数据集合,其本质是可以将一些信息(值),关联到对象上(键),而不需要讲这个信息放入对象本身.
- 解决问题: Map解决了对象中的key(键)必须是string类型的问题. 在Map中键可以是数组Array,对象Object,Number, 函数function等.
- Map还有一个优点就是它具有很快的查询速度
- 定义: new Map()
var m = new Map()
var x = {false: 1}
var y = {id: 2}
m.set(x, 'test')
console.log(m);
let a = Object.keys(x)
let b = m.get(x)
console.log(a);
console.log(b);
Map对象的操作方法
- Map方法形成的对象不能用[]来获取和设置值,用了get和set进行替代
- get
- get()可以用来获取值
- 用法: object.get(键名)
- set
- set()是用来给map添加元素的,可以设置值
- 用法: object.set(键名, '值')
- delete
- delete()方法是用来删除map数据结构中的一个元素
- 用法: object.delete()
- size
- size属性可以获取map的长度
- 用法: object.size
- has
- has方法可以用来检测map中元素是否存在
- 用法: object.has(检测元素的键). 返回值是Boolean类型
- clear
- clear: 可以用来清除map中的所有内容
- 用法: object.clear()
- 使用代码见下
let map = new Map()
let x = {name: 'String'}
let y = [1,2,3,4]
let z = function() {
console.log('test');
}
map.set(x, '名字')
map.set(y, '我是数组')
console.log(map);
let getX = map.get(x)
let getY = map.get(y)
console.log(getX);
console.log(getY);
map.set(z, '我是方法')
console.log(map);
console.log(map.get(z));
map.delete(z)
console.log(map);
console.log(map.size);
console.log(map.size);
console.log(map.has(x));
console.log(map.has(z));
let clearMap = map.clear()
console.log(clearMap);
console.log(map.size);
console.log(map.has(x));