人生不止有技术 链接每一位开发者, 让编程更有趣儿! 关注
上集说到ES6中set方法,在ES6中除了增加set方法之外,还考虑到一种场景——键值对的存储
,而map
集合就是专门存储多个键值对(key value pair)的数据。
在map出现之前,我们使用的是对象的方式来存储键值对,键是属性名,值是属性值。键值对数据结合的特点就是:键不可重复
。如果用对象来存储键值对在某些场景下不太如意:
- 键名只能是字符串或者符号,这就给它的使用带来很大的限制
- 获取数据的数量不方便,如果想知道对象中存了多少个数据,就必须先拿到所有的键名,然后通过求数组的长度才能知道对象中有多少个属性。
- 键名容易跟原型上的名称冲突。
0、如何创建map
new Map();//创建一个没有任何内容的map集合
new Map(iterable);//创建一个具有初始化内容的map,初始内容来自于可迭代对象每一次迭代的结果,
//但是,它要求每一次迭代的结果必须是一个长度为2的数组,数组第一项表示键,数组第二项表示值
例:创建一个没有任何内容的map集合
const mp = new Map();
console.log(mp);
执行结果:
例:创建一个有初始内容的map集合
const mp = new Map([["a",1],["b",2],["c",3]]);
console.log(mp);
执行结果:
1、如何进行后续操作
「1、size:只读属性,获取当前map中键的数量」
例:size
const mp = new Map([["a",1],["b",2],["c",3]]);
console.log(mp);
console.log("总数:",mp.size);
执行结果:
「2、set(键,值):设置一个键值对,键和值可以是任何类型」这也是跟Object存储
的区别,对象只能是字符串
例:set()
const mp = new Map([["a",1],["b",2],["c",3]]);
mp.set("d",4)
console.log(mp);
执行结果: