SOURCE

// **Map 实例的属性和方法如下:**

// - `size`:获取成员的数量
// - `set`:设置成员 key 和 value
// - `get`:获取成员属性值
// - `has`:判断成员是否存在
// - `delete`:删除成员
// - `clear`:清空所有

// `Map` 的用法和普通对象基本一致,
// 它能用非字符串或者数字作为 key 的特性。
// 也就是 值对值存储 
const map = new Map();
const obj = {p: 'Hello World!'}
map.set(obj, 'OK')
console.log(map.get(obj))

// 删除,判断是否存在
console.log(map.has(obj))
console.log(map.delete(obj))
console.log(map.has(obj))

map.set(obj, 'OK')
//判断成员数量,清空
console.log(map.size)
map.clear()
console.log(map)

// **Map 实例的遍历方法有:**

// - `keys()`:返回键名的遍历器。
// - `values()`:返回键值的遍历器。
// - `entries()`:返回所有成员的遍历器。
// - `forEach()`:遍历 Map 的所有成员。
// 这里可以类比Set的遍历
map.set(obj, 'OK')
map.set({}, 'NO')

// forEach
map.forEach(item => console.log('forEach', item))
// keys
console.log(map.keys())
for(let item of map.keys()){console.log(item)}
// values
console.log(map.values())
for(let item of map.values()){console.log(item)}
// entries
console.log(map.entries())
for(let item of map.entries()){console.log(item[0])}

// 转换为数组
console.log(Array.from(map))
console 命令行工具 X clear

                    
>
console