Map
键值存储的集合类型
创建map集合
let m = new Map()
let m1 = new Map([["m1","1"],["m2","2"],["m3","3"]]) //带有初始值,必须为二维数组
Map的方法
方法 | 描述 | 返回值 |
---|---|---|
set(“key”,“value”) | 添加键/值对 | 返回更新后的map集合 |
get(“key”) | 获取键值对 | 对应的键的值 |
has(“key”) | 查询键值对 | boolean |
size() | 获取Map长度,及键值对数量 | 长度 |
delete(“key”) | 删除键值对 | boolean |
clear () | 清空键值对 | boolean |
Map与Object的区别
- Map的键可以是javascript任何数据类型,比如functiong(){},Object
- Object的键只能使用数值、字符串或字符作为键
- 两者键映射的值都是没有限制的
内存与性能差别
Map | Object | |
---|---|---|
内存占用 | 相同内存比Object存储多50%的键值对 | |
插入性能 | √ | |
查找速度 | √ | |
删除性能 | √ |
WeekMap
弱映射,是Map的子集
弱映射中的键只能是Object或者继承来自Object的类型,如果是非对象设置键会抛出TypeError
Set
与Map类似,更像是在Map的基础上提升
创建Set集合
let s = new set()
let s1 = new Set(["val1","val2","val3"])
Set的方法
方法 | 描述 | 返回值 |
---|---|---|
add | 增加值 | 返回set集合 |
has | 判断是否存在该值 | boolean |
size | Set长度 | number |
delete | 删除元素 | boolean |
clear | 清空元素 | boolean |