Map学习总结
【Map学习总结】Map
1、可使用任何类型作为键名
2、键名关联其地址
注!!!
例:
const map = new Map()
.set({x:1}, '1')
.set({x:1}, '2')
console.log(map.keys()) // { { x: 1 }, { x: 1 } }
// 第一个{x: 1} 与 第二个{x: 1} 属于两个不同的内存地址/**---------------------------------------------*/
const maps = new Map()
.set({x:1}, '1')
console.log(maps.get({x:1}))// undefined
// 设置与打印时的{x: 1}属于两个不同的内存地址/**---------------------------------------------*/
const mapss = new Map()
.set(1, '1')
.set(1, '2')
console.log(mapss.keys()) // { 1 }
console.log(mapss.keys()) // { [ 1, '2' ] }
// 非引用类型,其内存地址相同,同键名时,键值会被覆盖
Map键名
关于简单数据类型,只要两个值严格相等,Map 将其视为一个键;
例:
+0 与 -0 为同一个键
true 与 'true'为两个不同的键
undefined 与 null 为两个不同的键
注:NaN虽不严格相等于自身,但 Map 将其视为同一个键const map = new Map()map.set(+0, 0)
console.log(map.get(-0)) // 0map.set(true, 'dui')
console.log(map.get('true')) // undefinedmap.set(undefined, 'undefined')
map.set(null, 'null')
console.log(map.get(undefined)) // undefinedmap.set(NaN, 'NaN')
console.log(map.get(NaN)) // NaN
创建Map内容的方式
/**----------------set单个创建-----------------------*/
const map = new Map()
map.set(key, value)
map.set(key, value)/**-----------------链式创建--------------------------*/
const map = new Map()
.set(key, value)
.set(key, value)/**-----------------数组式创建--------------------------*/
const map = new Map([[key, value], [key, value]])
// 备注:Map的赋值过程如下
// const arr = [[key, value], [key, value]]
// 将数组作为Map的入参,遍历设置
// arr.forEach(
//([key, value]) => map.set(key, value)
// )
Map的属性、操作方法、遍历方法
/**------------------ 属性 ----------------------------*/
size// 返回Map的总成员数/**------------------ 操作方法 -------------------------*/
set// set(key, value) 设置键名对应的键值返回--整个Map结构
get// get(key) 获取对应键名对应的键值返回--对应的键值或undefined
has// has(key) 判断Map内是否存在对应键返回--布尔值
delete// delete(key) 删除Map内指定的键 返回--删除成功返回true,返回失败返回false
clear // clear() 清除Map的所有成员 返回--无返回值/**------------------ 遍历方法 -------------------------*/
// const map = new Map()
//.set(0,'a')
//.set(1,'b')
//.set(2,'c')
keys// map.keys()---- { 0, 1, 2 }
values // map.values() ----{ 'a', 'b', 'c' }
entries // map.values() ----{ [ 0, 'a' ], [ 1, 'b' ], [ 2, 'c' ] }
forEach
//map.forEach((value, key) => console.log([value, key]))
// [ 'a', 0 ]
// [ 'b', 1 ]
// [ 'c', 2 ]for...of
// for (const [key, value] of map) { console.log(key, value) }
// 0 a
// 1 b
// 2 c
参考文献:https://es6.ruanyifeng.com/?s...
推荐阅读
- 由浅入深理解AOP
- 7.9号工作总结~司硕
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)