map
es6之中的map函数类似对象,但是各种值都可以当作键形式是键值对的形式
map的特性
Map的特性
1.Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
2.Map 对象记得键的原始插入顺序。
3.Map 对象具有表示映射大小的属性。
map与object
共同点
二者都是以key-value的形式对数据进行存储;
不同点
key的数据类型范围不同
obj可以作为key的仅有number、string、symbol。
map均可以。
key的顺序不同。
obj通过obj.keys()打印出来的属性顺序是 number–字符串
创建方式不同。
obj有三种创建方式 字面量{}、new Object() 、构造函数。
map仅支持new Map() map的key顺序是声明顺序。
key的调用不同。
map只能用原生的get方法调用
设置属性的方式不同
map只能使用set(key,val)方法设置属性。
Size属性
map有size属性,对象没有。Map.size 返回 Map 中元素的数量,而 Object 的键值对个数只能手动计算
创建方式
let m = new Map()
console.log(m)
//map(0){size:0}
map的方法
1.map()
map.set(键名,键值)
可以接受两个参数
键值可以为任何值
2.size
获取元素的大小
let m = new Map()
m.set("name","zs")
console.log(m.size) //1
3.delete( )
删除元素
let m = new Map()
m.set("name","zs")
m.delete("name")
console.log(m)
//返回的size值为0
4.has( )
利用键名去判断
let m = new Map()
m.set("name", "zs")
m.set("age", 18)
console.log(m.has("name")) //true
console.log(m.has("hobby")) //false
5.get( )
获取元素
let m = new Map()
m.set("name","wq")
console.log(m.get("name")) //wq
6.clear( )
清空
let m = new Map()
m.set("name","zs")
m.clear()
console.log(m)
//map(0){size:0}
7.entries( )
返回 Map 对象中键/值对的数组
8.keys( )
返回 Map 对象中键的数组
9.values( )
返回 Map 对象中值的数组
10.for…of遍历
11.forEach
返回键和值回调