根据阮一峰的博客做的学习笔记
// map 结构的数据是由键值对组成的,与 Object 的区别就是 map 可以使用各种类型的数据作为键值
// 可以使用 键(值) - 值 的方式
//一个 map 的数据
const mapData = new Map()
mapData.set(name, 'dddaaa') //给 map 添加属性
const obj = {name: 'dddaaa'}
console.log('map',mapData.get(name)); //获取属性对应的数据 输出 dddaaa
console.log('obj',obj.name); //输出 dddaaa
//一些测试
mapData.set(obj, 'delete me') //将上方新建的 obj 对象作为键值
console.log('set', mapData.get(obj)); //删除 obj 键值数据
mapData.delete(obj) //使用 delete 删除 map 的一个属性
console.log('del', mapData.get(obj)) //因为 obj 对应的数据已经被删除了,输出 undefined
/**
* map数据给同一个键多次赋值,后面的会将前面的覆盖掉
* size 属性会返回 map 数据里面的成员总数
* set 属性用于给 map 数据添加成员
* get 属性用于获取 map 数据对应键名的值
* has 用于判断 map 数据中是否有该键名的成员
* delete 用于删除 map 数据中对应键名的成员,删除成功返回 true 否则返回 false
* clear 用于清除 map 数据中的所有成员,无返回值
*
* map 的遍历方法
* Map.prototype.keys():返回键名的遍历器。
* Map.prototype.values():返回键值的遍历器。
* Map.prototype.entries():返回所有成员的遍历器。
* Map.prototype.forEach():遍历 Map 的所有成员。
* */
mapData.set('z', 'zzz')
mapData.set(145, 'asjdhjk')
mapData.set(true, 'zxjchx')
mapData.forEach(item => {
console.log('forEach', item); //会直接输出 map 里的值,不会输出键名 == values
})
console.log('keys', mapData.keys()); //输出 MapIterator {'', 'z', 145, true}
for (let keys of mapData.keys()) { //mapData.keys() 会返回 map 数据所有的键名
console.log('key',keys); //输出每一个键
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。