一、前言
假设我们有一个键值对{}按照一般的格式来说键只能是字符串,值可以是任意。比如下列的示例
{ id:1 //id 为键1为值 state:1 }
有没有一直方法是可以让键使用对象object或则其他类型呢?那这就需要使用Map了。map在保存键值对的时候,任何的
值都能作为键值
Let m = new Map([[{}, 1],[()=>1,1],["字符串",1],[NaN,1]]); console.log(m)
以上我们分别使用了4种类型的键值对,在map这里都是合法的。map实际也是一种数据结构,它跟对象是很相像的,是键值对的集合,它的键可以包含任意的数据类型。这些是它的特特性。
For循环获取map
map使用如下方法进行循环获取数据
Map.prototype.keys():返回键名的遍历器。
Map.prototype.values():返回键值的遍历器。
Map.prototype.entries():返回所有成员的遍历器。
Map.prototype.forEach():遍历 Map 的所有成员。
for (let [key, value] of m) { //获取全部 console.log(key + " = " + value); } for (let key of m.keys()) { //获取键 } for (let value of m.values()) { //获取值 } m.forEach((key, value)=>{ //forEach方法 })
二、map的方法
m.set('插入字符串', 1); // 添加新的key-value m.has('插入字符串'); // 是否存在key 'Adam': true m.get('插入字符串') //获取特定的键的值 m.delete('插入字符串'); // 删除key 'Adam' m.clear() //清空所有键值对