一、作用
Map在构造或者保存键值对的时候,任何值都可以(对象、数字、ture等...),所以使用Map构造的时候有一定随意性的
二、Map和Object的区别
1.Object的键只能是字符串或者Symbols组成,Map的键可以使用任意组成
2.Object的键是无序的,Map的键是有序的(FIFO 原则)
3.Object获取键值数量对需要手动获取,而Map的size就可以过去键值对的数量
三、Map对象的使用
1.Map的属性
- set(key, val): 向Map中添加新元素
- get(key): 通过键值查找特定的数值并返回
- size返回Map对象中所包含的键值对个数
- has(key): 判断Map对象中是否有Key所对应的值,有返回true,否则返回false
- delete(key): 通过键值从Map中移除对应的数据
- clear(): 将这个Map中的所有元素删除
2.set(key, val): 向Map中添加新元素
代码:
created() {
//定义map的键值对以数组形式的多维数组
let mapObj = new Map([
[1, 2],
[3, 4]
]);
mapObj.set(true, 5);
console.log('mapObj----', mapObj);
},
结果:
3.get(key): 通过键值查找特定的数值并返回
代码:
created() {
//定义map的键值对以数组形式的多维数组
let mapObj = new Map([
[1, 2],
[3, 4]
]);
mapObj.set(true, 5);
let getMap = mapObj.get(true);
console.log('getMap----', getMap); //5
},
结果:
4.size返回Map对象中所包含的键值对个数
代码:
created() {
//定义map的键值对以数组形式的多维数组
let mapObj = new Map([
[1, 2],
[3, 4]
]);
mapObj.set(true, 5);
let sizeMap = mapObj.size;
console.log('sizeMap----', sizeMap); //3
},
结果:
5.has(key): 判断Map对象中是否有Key所对应的值,有返回true,否则返回false
代码:
created() {
//定义map的键值对以数组形式的多维数组
let mapObj = new Map([
[1, 2],
[3, 4]
]);
mapObj.set(true, 5);
console.log('has----', mapObj.has(1)); //true
console.log('has----', mapObj.has('w')); //fales
},
结果:
6.delete(key): 通过键值从Map中移除对应的数据
代码:
created() {
//定义map的键值对以数组形式的多维数组
let mapObj = new Map([
[1, 2],
[3, 4]
]);
mapObj.set(true, 5);
mapObj.delete(1);
console.log('mapObj----', mapObj);
},
结果:
7.clear(): 将这个Map中的所有元素删除
代码:
created() {
//定义map的键值对以数组形式的多维数组
let mapObj = new Map([
[1, 2],
[3, 4]
]);
mapObj.set(true, 5);
mapObj.clear();
console.log('mapObj----', mapObj);
},
结果:
四、遍历方法
- keys():返回键名的遍历器
- values():返回键值的遍历器
- entries():返回键值对的遍历器
- forEach():使用回调函数遍历每个成员
五、转换
1.转换对象
代码:
created() {
//定义map的键值对以数组形式的多维数组
let mapObj = new Map([
[1, 2],
[3, 4]
]);
mapObj.set(true, 5);
let obj = {};
for (let [key, value] of mapObj) {
obj[key] = value;
}
console.log('obj---', obj);//obj--- {1: 2, 3: 4, true: 5}
},
结果:
2.转换数组
代码:
created() {
//定义map的键值对以数组形式的多维数组
let mapObj = new Map([
[1, 2],
[3, 4]
]);
mapObj.set(true, 5);
let mapArr = Array.from(mapObj);
console.log('mapArr---', mapArr); //mapArr--- [[1,2],[3,4],[true, 5]]
},
结果: