ES6- Map-1介绍及常用api
- Map简介
- Map对象的创建
- Map-api介绍
- 1. add() 往Map中添加键值对
- 2. get() 根据key取value
- 3. delete() 根据key删除键值对
- 4. keys() 获取所有的key
- 5. values() 获取所有的value
- 6. has() 判断map是否具有某个key
- 7.clear() 清空Map
- 8.size() 获取Map的长度
- 9.entries() 相当于获取创建的对象本身
- 10.Map的遍历方法
Map简介
- ES6提供的构造函数,一种新的存储结构,本质是键值对的集合
- 特点:key对应value,key和value唯一,任何值都可以当key
- 用途:可以让对象去当属性,去重
- 原理实现: 链接链表, hash算法, 桶
Map对象的创建
- 初始化默认赋值,需放入数组
let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
console.log(oMap);
- 直接创建
let oMap = new Map();
console.log(oMap);
Map-api介绍
1. add() 往Map中添加键值对
其中还可以添加对象和dom元素
代码语言:javascript复制 let oMap = new Map();
oMap.set("name","www");
oMap.set("age",19);
oMap.set("sex", true);
// 再添加一般的值以后,我们甚至可以把dom元素放进去当key
let oDiv = document.getElementById("demo");
oMap.set(oDiv, 50);
console.log(oMap);
2. get() 根据key取value
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
// 当然,如果直接放入空对象当键是取不到的,因为每一次都是重新new一个出来
console.log(oMap.get("name"));
3. delete() 根据key删除键值对
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
oMap.delete("name");
console.log(oMap);
4. keys() 获取所有的key
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
console.log(oMap.keys());
5. values() 获取所有的value
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
console.log(oMap.values());
6. has() 判断map是否具有某个key
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
console.log(oMap.has("name"));
7.clear() 清空Map
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
oMap.clear();
console.log(oMap);
8.size() 获取Map的长度
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
console.log(oMap.size);
9.entries() 相当于获取创建的对象本身
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
console.log(oMap.entries());
10.Map的遍历方法
代码语言:javascript复制1采用forEach()方法
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
oMap.forEach((ele, key, self) => {
console.log(ele, key, self);
})
2 采用for of 循环
代码语言:javascript复制 let oMap = new Map([["name", "www"],["age", 18],["sex", 20],[{}, 20]]);
for(let prop of oMap){
console.log(prop[0], prop[1]);
}