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...

    推荐阅读