Map类型是键值对的有序列表,而键和值都可以是任意类型
Map本身是一个构造函数,用来生成Map 数据结构

  1. const m = new Map()

增删改查

Map 结构的实例针对增删改查有以下属性和操作方法:

  • size 属性
  • set()
  • get()
  • has()
  • delete()
  • clear()

    size

    size属性返回 Map 结构的成员总数。 ```javascript const map = new Map(); map.set(‘foo’, true); map.set(‘bar’, false);

map.size // 2

  1. <a name="ecI6H"></a>
  2. ### set()
  3. 设置键名key对应的键值为value,然后返回整个 Map 结构<br />如果key已经有值,则键值会被更新,否则就新生成该键<br />同时返回的是当前Map对象,可采用链式写法
  4. ```javascript
  5. const m = new Map();
  6. m.set('edition', 6) // 键是字符串
  7. m.set(262, 'standard') // 键是数值
  8. m.set(undefined, 'nah') // 键是 undefined
  9. m.set(1, 'a').set(2, 'b').set(3, 'c') // 链式操作

get()

get方法读取key对应的键值,如果找不到返回undefined

  1. const m = new Map();
  2. m.set('a',1)
  3. m.get('a') // 1

has()

has方法返回一个布尔值,表示某个键是否在当前 Map对象之中

  1. const m = new Map();
  2. m.set('edition', 6);
  3. m.set(262, 'standard');
  4. m.set(undefined, 'nah');
  5. m.has('edition') // true
  6. m.has('years') // false
  7. m.has(262) // true
  8. m.has(undefined) // true

delete()

delete方法删除某个键,返回true。如果删除失败,返回false

  1. const m = new Map();
  2. m.set(undefined, 'nah');
  3. m.has(undefined) // true
  4. m.delete(undefined)
  5. m.has(undefined) // false

clear()

clear方法清除所有成员,没有返回值

  1. let map = new Map();
  2. map.set('foo', true);
  3. map.set('bar', false);
  4. map.size // 2
  5. map.clear()
  6. map.size // 0

遍历

Map 结构原生提供三个遍历器生成函数和一个遍历方法:

  • keys():返回键名的遍历器
  • values():返回键值的遍历器
  • entries():返回所有成员的遍历器
  • forEach():遍历 Map 的所有成员 ```javascript const map = new Map([ [‘F’, ‘no’], [‘T’, ‘yes’], ]);

for (let key of map.keys()) { console.log(key); } // “F” // “T”

for (let value of map.values()) { console.log(value); } // “no” // “yes”

for (let item of map.entries()) { console.log(item[0], item[1]); } // “F” “no” // “T” “yes”

// 或者 for (let [key, value] of map.entries()) { console.log(key, value); } // “F” “no” // “T” “yes”

// 等同于使用map.entries() for (let [key, value] of map) { console.log(key, value); } // “F” “no” // “T” “yes”

map.forEach(function(value, key, map) { console.log(“Key: %s, Value: %s”, key, value); }); ```